Re: Switching from CVS to GIT

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

 



> Date: Mon, 15 Oct 2007 00:45:47 +0100 (BST)
> From: Johannes Schindelin <Johannes.Schindelin@xxxxxx>
> cc: Alex Riesen <raa.lkml@xxxxxxxxx>, ae@xxxxxx, tsuna@xxxxxxxxxxxxx, 
>     git@xxxxxxxxxxxxxxx, make-w32@xxxxxxx
> 
> The problem is not so much opening, but determining if an existing file 
> and a file in the index have the same name.
> 
> For example, "README" in the index, but "readme" in the working directory, 
> will be handled as "deleted/untracked" by the current machinery.  IOW git 
> will not know that what it gets from readdir() as "readme" really is the 
> same file as "README" in the index.

That's because you think file names are simple strings and can be
compared by simple string comparison.  This naìve view is not true
even on POSIX systems: "foo/bar" and "/a/b/foo/bar" can be the same
file, as well as "/a/b/c/d" and "/x/y/z", given the right symlinks.
But for some reason that eludes me, people who are accustomed to POSIX
stop right there and in effect say "file names are strings, if we only
make them absolute and resolve links".  Instead, recognize that file
names are not strings (although they inherit some of the strings'
traits), and think in terms of "file-name comparison" abstraction;
then everything will fall in place just fine.

> > > - no acceptable level of performance in filesystem and VFS (readdir,
> > >   stat, open and read/write are annoyingly slow)
> > 
> > With what libraries?  Native `stat' and `readdir' are quite fast. 
> > Perhaps you mean the ported glibc (libgw32c), where `readdir' is indeed 
> > painfully slow, but then you don't need to use it.
> 
> No, native.

Can you show a test case where this penalty is clearly visible?  I'm
curious to see the numbers.  TIA
-
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