Re: Implement core.symlinks to support filesystems without symlinks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, 28 Feb 2007, Robin Rosenberg wrote:

> tisdag 27 februari 2007 22:41 skrev Johannes Sixt:
> > 
> > Here is a small patch series that adds a configuration variable 
> > core.symlinks.
> >
> > From the manual:
> > 
> > core.symlinks::
> > 	If false, symbolic links are checked out as small plain files that
> > 	contain the link text. gitlink:git-update-index[1] and
> > 	gitlink:git-add[1] will not change the recorded type to regular
> > 	file. Useful on filesystems like FAT that do not support
> > 	symbolic links. True by default.
> 
> How useful is that? The problem is that those links won't work so the 
> checkout will be broken. Creating copies would be less broken since the 
> "links" could still be used. It should be possible to use the index to 
> see which file is an original and which is a symblink, provided both are 
> in the same repository. Then maybe fall back to this approach if the 
> symlink target cannot be resolved.

Basically, there is no proper way to solve it (other than switching to 
Linux, but that goes without saying).

Your solution would fall short if one of the two files is changed. Since 
they are supposed to be symlinks, the application expects them to be 
identical, and weird sh*t happens.

E.g. if you have a symlink "ln -s Makefile.host Makefile", and a script 
which changes "Makefile.host", and a subdirectory Makefile accessing the 
root Makefile, you will not be happy.

So, any way you go, if you have a repository containing symlinks, and you 
have an OS which does not support symlinks, you are screwed.

But since we already have a symlink in git.git, and _want_ to compile git 
on MinGW nevertheless, we should support symlinks _somehow_. Even if that 
means that advanced usage of symlinks will fail.

I agree with Johannes here how to go about this partial "support" of 
symlinks, since I cannot think of any sane way to retain the information 
(where the symlink points to) in the index.

Ciao,
Dscho

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]