How to add a git repository as a shared dependency of another git repository?

For each project, add . Git/hooks/pre-commit (and make sure it's executable):! /bin/sh git --git-dir=~/eagle/.

Git log -1 --pretty=format:%H >. Eagle_rev git add . Eagle_rev Then, for each project: git config alias.

Update-eagle '! Git --git-dir=~/eagle/. Git --work-tree=~/eagle checkout -q $(Eagle_rev) When you make a commit, it will record the current HEAD of ~/eagle, and git update-eagle will check out that commit in ~/eagle.

(Then just make sure you git checkout.

For each project, add . Git/hooks/pre-commit (and make sure it's executable): #! /bin/sh git --git-dir=~/eagle/.

Git log -1 --pretty=format:%H >. Eagle_rev git add . Eagle_rev Then, for each project: git config alias.

Update-eagle '! Git --git-dir=~/eagle/. Git --work-tree=~/eagle checkout -q $( in ~/eagle before you make any changes to it.).

Mkarasek, you are the new hotness! I had no clue about hooks until now... However, for some reason, using "~" in the --git-dir path returned the error "fatal: Not a git repository: '~/eagle/. Git'".

However, if I replaced "~" with "$HOME" (i.e. '--git-dir=$HOME/eagle/. Git') it works fine.

Any idea why "~" doesn't work with --git-dir and --work-tree? – cdwilson Jul 29 '10 at 3:42 You get that error with the commit hook? Could be that your /bin/sh is having issues with it; replace the first line with #!

/bin/bash and see if that fixes the problem. (If, on the other hand, you're getting that error with the alias, then I have no idea. ) – mkarasek Jul 29 '10 at 5:19.

If eagle hasn't its place within a ProjX, but each ProjX can use a specific revision of eagle, then: For each ProjX, you need to: have a MainProjX Git repo, in which you would find: a ProjX a version of eagle (at the same level than ProjX) The goal of each MainProjX parent project is to keep together the versions of ProjX and eagle, that is to record the right dependencies. ~/projects/ eagle/ . Git/ MainProj1 Proj1/ .

Git/ eagle/ . Git/ Now, yes, that is a lot of 'eagle' duplication, but that is necessary if each ProjX is able to use its own eagle revision.

VonC, thanks for the quick reply. Yeah, that was the only thing I could come up with as well... The problem is that the 'eagle' repo could be really massive (an entire cad library) whereas the Projx repos are really small. Like you said, I'd have to keep around tons of copies of the 'eagle' repos, AND even worse, I'd have to manually change the CAD tool's library path to the individual Projx/eagle/ dir for the tool to even see them, which makes this method practically unusable.

– cdwilson Jul 27 '10 at 20:38 1 @lotharsmash: wouldn't a relative path "../eagle" be enough for each library paths? (since eagle would be at the same level than ProjX) – VonC Jul 27 '10 at 21:32.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions