Re: An idea: maybe Git should use a lock/unlock file mode for problematic files? [Was: Re: after first git clone of linux kernel repository there are changed files in working dir]

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

 



On Tue, 20 Jan 2009, thestar@xxxxxxxxxxxxxxxx wrote:

> Quoting Hannu Koivisto <azure@xxxxxx>:
> <snip>
> > Kernel source contains pairs of files whose names differ only by
> > case.  Windows cannot store such pairs (at least by default) and
> > apparently there is no support for such a situation in git so
> > you'll only get one file from each pair to your workspace and the
> > other file is shown as modified.
> 
> Could git be modified to allow such repositories to be used on windows  
> by locking files that are problematic, for example, a given repository  
> could have files 'AAA' and 'aAa'.
> 
> The one that correctly represents the on-disk file would be 'open for  
> edit', while the other file would be locked.  To edit the other file,  
> the existing file would need to be locked, and then the other file  
> would then need to be open for edit.
> 
> This could even be extended to allow one to "open file AAA for edit as  
> aAa.v2', giving the file an alternate name.
> 
> Such a workflow would only need to be used for such files, and could  
> also be used when there are incompatible file names for that given  
> partition type.

The hard part is actually identifying what the user's filesystem has done. 
There's pretty good internal support for git knowing that, for a 
particular entry, the filesystem should not be consulted for information. 
I don't think anyone's come up with a suitably cross-platform and 
automatic way to figure out what's happened when git tries to write to a 
particular filename and the system decides it is the same as some other 
filename or it decides to use a different filename instead.

Of course, it is reasonably likely that a project whose files can't all be 
checked out can't be dealt with anyway on that platform (IIRC, the Linux 
kernel build system assumes that it can create both .S and .s files, so it 
won't build on FAT). So nobody's been sufficiently motivated to try to 
implement a fix.

	-Daniel
*This .sig left intentionally blank*
--
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]

  Powered by Linux