2009-09-30 13 views
21

gitにシンボリックリンクをたどる方法を尋ねる人もいます。シンボリックリンクディレクトリの回答がありましたが、シンボリックリンクのファイルの回答はありませんでした。それはまた1年以上前です。gitがシンボリックリンクに従うようにする(もう一度)

質問:gitにシンボリックリンクに従って、それが参照するファイルを追加するにはどうすればよいですか?

これは古い質問です:How can I get git to follow symlinks?です。 gitが通常どおりに行うことについての質問もありますHow does git handle symbolic links?。私はこの行動を変える方法をとっています。

あなたが気にする場合:私はunixでgit 1.5.4.3を、macでgitバージョン1.6.0を実行しています。

答えて

22

私はかなり方法がないと確信しています。

さらに、安全ではない定義されていない動作のように思えます。ファイルのバージョン間を移動して書き込む必要がありますか?特に、リビジョンが追加される前にリビジョンをチェックアウトした場合、リポジトリ外のファイルの内容を削除したいのですか?ファイルを表示して再作成した場合、またはシンボリックリンク自体が変更されている場合はどうなりますか?シンボリックリンク自体も追跡する必要がありますか?

本質的に同じ質問に答えて、これらの行に沿ったものは、昨年末にsaid on the git mailing listでした。ハードリンクを使用する方法については、Gitはそのリンク先のファイルは考えていませんか

+0

これはいくつかの優れた点です - ありがとう。 – Peter

+1

ええ、残念ながら。場合によってはリンクをたどることが本当にいいと思う。その回答の1つに示唆されたアプローチがありました。リポジトリの外部にあるファイルをレポにシンボリックリンクさせ、可能であればリポジトリからシンボリックリンクを含めることも可能です。あなたはあなたが必要とすることをする方法を見つけることを願っています! – Cascabel

11

あなたは代わりにソフトリンク(別名、シンボリックリンク)のハードリンクを使用することができます。 Gitは、リンクされたファイルの内容を表示します。欠点は、誰かがチェックアウトしたときに、Gitがそれをリンクとして理解していないので、チェックアウトされたディレクトリにファイルが通常のファイルとして作成されることです。

2

ハードリンクを使用する際の問題は、変更を書き込むのではなく、別の場所への書き込みによってファイルが置き換えられた場合、ファイルシステム上に新しいiノードがあり、ファイルは同期していません。

関連する問題