1 |
On 1/15/10, Nirbheek Chauhan <nirbheek@g.o> wrote: |
2 |
> > "git commit <dir>" and "git status <dir>" still do full tree lstat(). |
3 |
> > I can try to make a patch or two to reduce lstat() in such cases. |
4 |
> > |
5 |
> |
6 |
> |
7 |
> That would definitely compliment the --stat option to git diff et al, |
8 |
> making git more usable on repos with a huge no. of files. Now that I |
9 |
> think about it, why does git <command> <dir> need to do a full tree |
10 |
> stat at all? Doesn't the added specification of <dir> mean "I'm only |
11 |
> interested in this dir for this command, other stuff doesn't matter"? |
12 |
|
13 |
Probably because the difference is too small to notice on smaller-size |
14 |
projects, or because people tend to do whole-tree operations so "git |
15 |
<command> <dir>"'s performance does not catch the developers' eyes. |
16 |
|
17 |
Anyway, stat()ing 80k files takes about 1 second on my machine, still |
18 |
tolerable. There is whole-tree open() in "git status" to check for |
19 |
untracked files, that contributes more on "git status" slowness. How |
20 |
long on average did a Git operation take on your tmpfs? |
21 |
-- |
22 |
Duy |