threads / discuss / 24832

How does git deal with hard links in source code?

Subject: How does git deal with hard links in source code?

## tl;dr

2 messages between Aug 23, 2010 and Aug 23, 2010.

replies: 1people: 2as markdown or json

Seth Kriticos· Aug 23, 2010, 08:33 UTC · lore
Hi list,

I've got a question my google-fu and the docs were not able to answer:

Is there a way to preserve the hard links that are within a git repository checkout (the stuff that is tracked by the git repository)?

The use-case I have is the following: I want to have two different template directories for stuff in the tracked sources: a base one and some extended ones. I want to have the stuff from the base one hard-linked to the extended one, so changes in the base one change all the other depending templates too.

Now for testing I committed and pushed an instance of this and then cloned the repository, and it ate my hard links (checked out two separate copies of the files).

Is there a way to convince git not to eat my hard links without some complicated scripting magic and checkout hooks?

~ Seth Kriticos
Jakub Narebski· Aug 23, 2010, 09:00 UTC · re: Seth Kriticos · lore

Re: How does git deal with hard links in source code?

Seth Kriticos <seth.kriticos@googlemail.com> writes:
Show 6 quoted lines
> I've got a question my google-fu and the docs were not able
> to answer:
> 
> Is there a way to preserve the hard links that are within
> a git repository checkout (the stuff that is tracked by the
> git repository)?
No, there isn't, and there shouldn't.  Not all filesystems support
hardlinks.
 
Show 13 quoted lines
> The use-case I have is the following: I want to have two
> different template directories for stuff in the tracked
> sources: a base one and some extended ones. I want to have
> the stuff from the base one hard-linked to the extended one,
> so changes in the base one change all the other depending
> templates too.
> 
> Now for testing I committed and pushed an instance of this
> and then cloned the repository, and it ate my hard links
> (checked out two separate copies of the files).
> 
> Is there a way to convince git not to eat my hard links
> without some complicated scripting magic and checkout hooks?
Make hardlinks on deploy.
-- 
Jakub Narebski
Poland
ShadeHawk on #git

← back to recent threads