On Friday 2007, March 30, Andy Parkins wrote: > At this point the CPU pegs at 100% systime. An strace shows that git > is calling lstat64() on every file in my home directory. I killed > git before it scanned everything I've ever done. Okay. I've tracked down the culprit function, but I have no idea what the fix is. builtin-add.c:fill_directory() calls dir.c:read_directory() which calls dir.c:read_directory_recursive() I can't see why git feels that it has to recurse the entire subtree. It seems to be something to do with the gitignore stuff. Surely there is no need to use a recursive search when no directories are being added? If git-add were given file1 dir1/file2 dir2/dir3/file3 Then only the directories "."; "dir1/"; "dir2"; and "dir2/dir3" need checking for .gitignore files; and in none of those cases does the search need to be recursive. Andy -- Dr Andy Parkins, M Eng (hons), MIET andyparkins@xxxxxxxxx - 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