git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git-merge performance

From
AMAndrew Morton <akpm@linux-foundation.org>
Date
Oct 16, 2007, 17:17 UTC
Message-ID
<20071016101748.ff132685.akpm@linux-foundation.org>

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 ;)
Next: Andreas Ericsson
Message 1 of 3 in “git-merge performance”
  1. Andrew MortonOct 16, 2007
  2. Andreas EricssonOct 16, 2007
  3. Andrew MortonOct 16, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.