Mercurial Workflow: Feature seperation via named branches

Arne Babenhauserheide arne_bab at web.de
Thu Jun 16 07:36:35 CDT 2011


On Thursday 16 June 2011 02:41:05 Arne Babenhauserheide wrote:
> The performance penalty is a disadvantage, though. I’m currently creating
> some  test repos to see how bad it really is.

I now created some test repos for that. Please excuse the short style - need 
to be gone in a moment.

2000 simple commits (no branches, no heads), 
2000 heads (no named branches), 
2000 open named branches (heads), 
2000 named branches merged into default (no heads), 
2000 named branches closed and merged into default.

http://draketo.de/dateien/hg-test-named-branch-performance.tar.bz2

(including all the repos and a creation script, so you can verify)


# namen branch performance test results

# at least 2000 changesets each, about 1000-1600 already in the target repo 
(cloned to 0, then pushed all changesets till 1000 in a for loop), 1000-2000 
to transfer (varying due to merge and close changesets)


## no branching: linear history

 $ time hg -R test_nobranches push http://edrikor.dyndns.org:8000/ -f > 
/dev/null

real    0m1.816s
user    0m0.733s
sys     0m0.063s


## just 2000 heads

# failed push

 $ time hg -R test_nonamed push http://edrikor.dyndns.org:8000/
Übertrage nach http://edrikor.dyndns.org:8000/
Suche nach Änderungen
Abbruch: push creates new remote heads on branch 'default'!
(did you forget to merge? use push -f to force)

real    0m23.995s
user    0m15.370s
sys     0m0.066s

# with --force

 $ time hg -R test_nonamed push http://edrikor.dyndns.org:8000/ -f

real    0m17.279s
user    0m0.760s
sys     0m0.044s


## using 2000 not merged named branches

 $ time hg -R test_unmerged push http://edrikor.dyndns.org:8000/ -f > 
/dev/null

real    0m1.767s
user    0m0.736s
sys     0m0.065s


## 2000 named branches, merged into default

 $ time hg -R test_merged push http://edrikor.dyndns.org:8000/ -f > /dev/null

real    0m4.313s
user    0m1.526s
sys     0m0.065s


## 2000 closed named branches, merged into default

 $ time hg -R test_closed push http://edrikor.dyndns.org:8000/ -f > /dev/null

real    0m7.328s
user    0m1.795s
sys     0m0.060s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 316 bytes
Desc: This is a digitally signed message part.
URL: <http://selenic.com/pipermail/mercurial/attachments/20110616/6c4c55b7/attachment.pgp>


More information about the Mercurial mailing list