tests/test-merge10.t
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Fri, 11 Jan 2013 18:47:42 +0100
changeset 18307 0eed2546118a
parent 16913 f2719b387380
child 34661 eb586ed5d8ce
permissions -rw-r--r--
branchmap: Save changectx creation during update The newly introduced `branchmap` function allows us to skip the creation of changectx objects. This speeds up the construction of the branchmap. On the mozilla repository (117293 changesets, 15490 mutable) Before: ! impactable 19.9 ! mutable 0.576 ! unserved 3.16 After: ! impactable 7.03 (2.8x faster) ! mutable 0.352 (1.6x) ! unserved 1.15 (2.7x) On the cpython repository (81418 changesets, 6418 mutable) Before: ! impactable 15.9 ! mutable 0.451 ! unserved 0.861 After: ! impactable 6.55 (2.4x faster) ! mutable 0.170 (2.6x faster) ! unserved 0.289 (2.9x faster) On the pypy repository (58852 changesets) Before: ! impactable 13.6 After: ! impactable 6.17 (2.2x faster) On my Mercurial repository (18295 changesets, 2210 mutable) Before: ! impactable 23.9 ! mutable 0.368 ! unserved 0.057 After: ! impactable 1.31 (18x faster) ! mutable 0.042 (8.7x) ! unserved 0.025 (2.2x)

Test for changeset 9fe267f77f56ff127cf7e65dc15dd9de71ce8ceb
(merge correctly when all the files in a directory are moved
but then local changes are added in the same directory)

  $ hg init a
  $ cd a
  $ mkdir -p testdir
  $ echo a > testdir/a
  $ hg add testdir/a
  $ hg commit -m a
  $ cd ..

  $ hg clone a b
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ cd a
  $ echo alpha > testdir/a
  $ hg commit -m remote-change
  $ cd ..

  $ cd b
  $ mkdir testdir/subdir
  $ hg mv testdir/a testdir/subdir/a
  $ hg commit -m move
  $ mkdir newdir
  $ echo beta > newdir/beta
  $ hg add newdir/beta
  $ hg commit -m local-addition
  $ hg pull ../a
  pulling from ../a
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files (+1 heads)
  (run 'hg heads' to see heads, 'hg merge' to merge)
  $ hg up -C 2
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg merge
  merging testdir/subdir/a and testdir/a to testdir/subdir/a
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg stat
  M testdir/subdir/a
  $ hg diff --nodates
  diff -r bc21c9773bfa testdir/subdir/a
  --- a/testdir/subdir/a
  +++ b/testdir/subdir/a
  @@ -1,1 +1,1 @@
  -a
  +alpha

  $ cd ..