異なるプロジェクト間で特定のファイルを共有するには共有が必要です。GITはWindows上でディレクトリジャンクションを通常のフォルダとして扱う方法を教えてください。
D:\shared\
D:\shared\files-shared-by-all-projects-here
D:\project1\
D:\project1\project1-specific-files-here
D:\project1\shared <- directory junction to D:\shared
D:\project2\
D:\project2\project2-specific-files-here
D:\project2\shared <- directory junction to D:\shared
私はD:\project1
とD:\project2
でセットアップGITレポを持っている私の問題は、GITは唯一の非接合し(すなわち、実際のディレクトリ)内のファイルを追跡するように見えるということです。したがって、私はそうのようなファイル構造を持っています。
:
- プロジェクトにディレクトリジャンクションに存在するファイルを追加すると、チームエクスプローラは、ファイル自体ではなく、コミットする変更のリストにのみ親ディレクトリ(ジャンクション)を表示します。 (つまり、ファイルが追加されている)すべての変更をコミットする際に
- は、ソリューションエクスプローラは、すべて追跡されているなどのファイルやを示してチェックインされた接合に存在していたものないは、保留中の変更のリストに示さ含む(彼らは追加された後:チェックインのように示されており、接合ディレクトリに存在されたファイルの編集
- は、ために見えるようになりますがチェックアウト: 今チームエクスプローラに戻って
- 、チェックアウトしたファイルが変更されたファイルのリストにを示している:
- コミットしようとすると、「エラーが発生しました。詳細メッセージ:変更なし。 明示的に追加すること
:。チェックインのように失敗したコミットれる変更されたファイルが、それにもかかわらず表示され、ソリューションエクスプローラに戻ってコミットすることは何も」
- 共有ディレクトリにあるファイル(
D:\project2\shared\some-shared-file
で参照してください)o例えばVisual StudioのutartはTortoise GITを使用しても動作しません。ファイルとディレクトリの両方であるというメッセージとともに失敗します。上記は、プロジェクトのルートに存在する
frame
ディレクトリが本当に接合である新しいテストプロジェクトで行われました。私の実際のプロジェクトでは状況は少し異なります...たとえばTortoise GITを使ってリポジトリをブラウズすると、実際にジャンクションに存在する共有ファイルが追跡され、チェックインされ、レポの一部として表示されます。しかし、すぐに私は、Visual Studioでプロジェクトを開くと、それが表示されるでしょうけれども、「削除保留中」として、ソリューションエクスプローラやチームエクスプローラの変更で同じファイル。これはVSの奇妙なことですか?
最終的には、ディレクトリジャンクションに存在するファイルを通常のファイルと同じようにプロジェクトの一部として表示する方法を知りたいので、正しくチェックアウトしてチェックインしてフォームに戻すことができますプロジェクトの(repoの)歴史の一部?現時点では
に固定されますことを期待して、それに投票する人を奨励してください明確な説明をありがとう!おそらく実用的な回避策をお勧めしますか?それとも、「共有」レポを作成し、それを手動でコミットする以外の方法はありませんか? –
おそらくスイッチするためのいくつかのgitオプションがありますか?私はtrueとfalseでcore.symlinksを疲れましたが、それは何もしていないようです。 –
私は本当の回避策は存在しないことを恐れている、あなたは、共有リポジトリを使用する必要が手動でコピーするか、またはアプローチのサブモジュールのタイプを使用します。 –