threads / discuss / 10320

git-merge performance

Subject: git-merge performance

## tl;dr

3 messages between Oct 16, 2007 and Oct 16, 2007.

replies: 2people: 2as markdown or json

Andrew Morton· Oct 16, 2007, 17:17 UTC · lore

My git-pulling script (git-1.4.2) seems to have got quite a bit slower since the post-2.6.23 patchflood. I just did a bit of poking and it's git-merge which is taking most of the time.

Using git-watchdog as an example:

box:/usr/src/git26> cat .git/branches/git-watchdog git+ssh://master.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog-mm.git box:/usr/src/git26> git reset --hard origin box:/usr/src/git26> git fetch git-watchdog box:/usr/src/git26> time git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null Automatic merge failed; fix conflicts and then commit the result. git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null 47.03s user 26.53s system 97% cpu 1:15.67 total

Try git-md-accel:

box:/usr/src/git26> cat .git/branches/git-md-accel git://lost.foo-projects.org/~dwillia2/git/iop#md-for-linus box:/usr/src/git26> time git reset --hard origin git reset --hard origin 0.51s user 0.11s system 100% cpu 0.615 total box:/usr/src/git26> time git fetch git-md-accel git fetch git-md-accel 0.12s user 0.05s system 11% cpu 1.379 total box:/usr/src/git26> time git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null Automatic merge failed; fix conflicts and then commit the result. git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null 42.52s user 24.18s system 96% cpu 1:08.93 total

And git-unionfs:

box:/usr/src/git26> cat .git/branches/git-unionfs git+ssh://master.kernel.org/pub/scm/linux/kernel/git/ezk/unionfs.git box:/usr/src/git26> time git reset --hard origin git reset --hard origin 0.52s user 0.09s system 100% cpu 0.611 total box:/usr/src/git26> time git fetch git-unionfs git fetch git-unionfs 0.16s user 0.03s system 8% cpu 2.285 total box:/usr/src/git26> time git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null Automatic merge went well; stopped before committing as requested git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null 42.81s user 24.86s system 96% cpu 1:09.98 total

Everything is in pagecache, and I just did git-repack -a -d;git prune;git-fsck-objects --full.

Pulling 70-80 trees at a minute and a half each gets a bit dull ;)
Andreas Ericsson· Oct 16, 2007, 17:34 UTC · re: Andrew Morton · lore

Re: git-merge performance

Andrew Morton wrote:
> My git-pulling script (git-1.4.2) seems to have got quite a bit slower
> since the post-2.6.23 patchflood.  I just did a bit of poking and it's
> git-merge which is taking most of the time.
> 

That's odd. If it had been the remote fetching it would have been understandable. Is this also happening with more recent gits? I know there are some significant performance-improvements in 1.5.3.4 (or below).

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Andrew Morton· Oct 16, 2007, 18:18 UTC · re: Andreas Ericsson · lore

Re: git-merge performance

On Tue, 16 Oct 2007 19:34:10 +0200 Andreas Ericsson <ae@op5.se> wrote:

Show 10 quoted lines
> Andrew Morton wrote:
> > My git-pulling script (git-1.4.2) seems to have got quite a bit slower
> > since the post-2.6.23 patchflood.  I just did a bit of poking and it's
> > git-merge which is taking most of the time.
> > 
> 
> That's odd. If it had been the remote fetching it would have been
> understandable. Is this also happening with more recent gits? I know there
> are some significant performance-improvements in 1.5.3.4 (or below).
> 
1.5.0 is no faster, but 1.5.3 appears to be seven times quicker.  Neato.

← back to recent threads