Re: git status: small difference between stating whole repository and small subdirectory
- From
Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
- Date
- Feb 13, 2012, 16:54 UTC
- Message-ID
- <CAA01CsqjeDR56n=gdLWtDshp8-=8_cSih9vHV3vnUx0wTockYg@mail.gmail.com>
- In-Reply-To
- <CACsJy8C05wvQRRQJLxrxYKHjXsgh6RugFexkPUKYGxbQkqiXJA@mail.gmail.com>
On Fri, Feb 10, 2012 at 3:37 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
> I think the cost is in $GIT_DIR, not the working directory.
Could you explain?
I got the problem again today. This time I've made a copy of the repository so hopefully I'll able to reproduce the problems.
This time it's a different repository but the 'status' on a small subdirectory is even more than 2x slower than on the whole repository.
Whole repo: $ find * -type f | wc -l 33021 $ du -shc * | grep total 2.1G total
The subdir: $ find * -type f | wc -l 17 $ du -shc * | grep total 84K total
As previously, timing was done with cold cache (echo 3 | sudo tee /proc/sys/vm/drop_caches) and executed several times.
This time I have used recent git (1.7.9.188.g12766) compiled with -pg. git was executed in the subdirectory. Tracked files were not changed/deleted, there was just a couple of small untracked files.
Timings:
$ time git status real 0m16.595s user 0m0.680s sys 0m0.616s
$ time git status -- . real 0m10.030s user 0m0.464s sys 0m0.184s
You can find gprof output here: http://pastebin.com/mhddDUmv - from whole repo status http://pastebin.com/1LdVn77A - from subdir status
-- Piotr Krukowiecki