1. ホーム
  2. ウィンドウズ

[解決済み】WindowsでGit Symlinksを使用する場合

2022-04-19 17:01:40

質問

当社の開発者は、WindowsとUnixベースのOSを混在して使用しています。そのため、Unixマシンで作成されたシンボリックリンクは、Windowsの開発者にとって問題となります。Windows (msysgit) では、シンボリックリンクは、それが指すファイルへのパスを持つテキストファイルに変換されます。その代わり、シンボリックリンクを実際のWindowsのシンボリックリンクに変換したいと思います。

は、( 更新 )これに対して私が持っている解決策は

  • テキストファイルを再帰的に検索するポストチェックアウトスクリプトを作成します。
  • ダミーのシンボルリンクと同じ名前と拡張子を持つシンボルリンクに置き換える(mklinkを使用)。
  • .git/info/exclude にエントリを追加して、これらの Windows シンボリックリンクを無視する。

私はこれを実装していませんが、これはこの問題に対する堅実なアプローチだと思います。

質問です。

  1. この方法のデメリットがあるとすれば、それは何でしょうか?
  2. このチェックアウト後のスクリプトは実装可能ですか?つまり、git が作成するダミーの "symlink" ファイルを再帰的に見つけることは可能ですか?
  3. このようなスクリプトを既に作成した人はいますか?

どのように解決するのですか?

シンボリックリンクを見つけるには、モードが 120000 おそらくこのコマンドを使用します。

git ls-files -s | awk '/120000/{print $4}'

リンクを置き換えたら、変更されていないことを示すために、次のようにマークすることをお勧めします。 git update-index --assume-unchanged でリストアップするのではなく .git/info/exclude .