2016-05-04 21 views
1

私はGitリポジトリを持っています。このリポジトリには、core_codeというディレクトリがあります。このディレクトリには、共通ライブラリなどのいくつかのソフトウェアで使用される共通のコードが含まれています。 program_alphaprogram_betaという2つの異なるソフトウェアが含まれていますが、関連するディレクトリもあります。 program_alphaprogram_betaの両方は、機能するためにcore_codeに依存しています。ソフトウェアを実行するときは、core_codeをプログラムディレクトリに置く必要があります。したがって、私がソフトウェアを実行しているときには、program_alphaprogram_betaの両方がcore_codeのコピーを持っている必要があります(アプリケーション固有の理由で、core_codeはプログラムのルートになければならず、どこかから参照できません)。Gitリポジトリの複数のディレクトリで同じコードを使用する

だから、私はprogram_*のディレクトリにすべてcore_codeというディレクトリを用意していますが、複製することはありません。当初は、program_*ディレクトリにあるcore_codeディレクトリを指し示すシンボリックリンクを持っていましたが、私はクロスプラットフォームのコードを使用していますし、GitはWindowsのシンボリックリンクをまったく受け付けていません。このコードをすべて同じリポジトリに保存する必要がありますので、core_codeのリポジトリを別に作成してから、サブモジュールをprogram_*ディレクトリに使用することはできません。

これを行う最善の方法はありますか?シンボリックリンクがGitでうまく機能していれば、とても簡単です。

答えて

0

Windowsマシンでpost-checkoutフックを使用できます。 githubでthisの実装を試してみてください。あなたのレポは、Makefilecore_codeまたはconfigureスクリプトをコピーした方がよい、ユーザーの大規模なグループ間で共有されるようにmeanedされている場合はGit Symlinks in Windows

:あなたは別の質問では、この方法についての詳細な議論を見つけることができます。 git-symlinkやフックに依存しないでください。