Commits

Ronny Pfannschmidt committed 35e635b

filelog: sort meta entries, ensure deterministic order

  • Participants
  • Parent commits 7a6b5f8
  • Branches stable

Comments (0)

Files changed (31)

File mercurial/filelog.py

         if meta or text.startswith('\1\n'):
             mt = ""
             if meta:
-                mt = ["%s: %s\n" % (k, v) for k, v in meta.iteritems()]
+                mt = ["%s: %s\n" % (k, v) for k, v in sorted(meta.iteritems())]
             text = "\1\n%s\1\n%s" % ("".join(mt), text)
         return self.addrevision(text, transaction, link, p1, p2)
 

File tests/test-bundle-r.out

      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 crosschecking files in changesets and manifests
 checking files
 3 files, 5 changesets, 6 total revisions
-4:80fe151401c2
+4:27f57c869697
 searching for changes
 5 changesets found
 adding changesets
 crosschecking files in changesets and manifests
 checking files
 2 files, 5 changesets, 5 total revisions
-4:836ac62537ab
+4:088ff9d6e1e1
 pulling from ../test-7
 searching for changes
 adding changesets
 added 6 changesets with 4 changes to 4 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
 % 8
-8:836ac62537ab
+8:088ff9d6e1e1
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 added 2 changesets with 2 changes to 2 files
 (run 'hg update' to get a working copy)
 % 4
-4:836ac62537ab
+4:088ff9d6e1e1
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 added 4 changesets with 3 changes to 3 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
 % 6
-6:80fe151401c2
+6:27f57c869697
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 added 7 changesets with 4 changes to 4 files
 (run 'hg update' to get a working copy)
 % 9
-9:607fe5912aad
+9:e3061ea42e4c
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests

File tests/test-bundle.out

 added 9 changesets with 7 changes to 4 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
 ====== Log -R full.hg in fresh empty
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     0.3m
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 ====== Log -R full.hg in partial
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     0.3m
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 added 9 changesets with 7 changes to 4 files (+1 heads)
 updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     0.3m
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 checking files
 2 files, 2 changesets, 2 total revisions
 ====== diff against bundle
-diff -r 836ac62537ab anotherfile
+diff -r 088ff9d6e1e1 anotherfile
 --- a/anotherfile	Mon Jan 12 13:46:40 1970 +0000
 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,4 +0,0 @@

File tests/test-clone-r.out

      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests

File tests/test-command-template.out

 # revision with no copies (used to print a traceback)
 
 # compact style works
-8[tip]   3bdecc1cde0c   2020-01-01 10:01 +0000   test
+8[tip]   95c24699272e   2020-01-01 10:01 +0000   test
   third
 
 7:-1   29114dbae42b   1970-01-12 13:46 +0000   user
 0   1e4e1b8f71e0   1970-01-12 13:46 +0000   user
   line 1
 
-8[tip]   3bdecc1cde0c   2020-01-01 10:01 +0000   test
+8[tip]   95c24699272e   2020-01-01 10:01 +0000   test
   third
 
 7:-1   29114dbae42b   1970-01-12 13:46 +0000   User Name <user@hostname>
   line 1
 line 2
 
-8[tip]:7,-1   3bdecc1cde0c   2020-01-01 10:01 +0000   test
+8[tip]:7,-1   95c24699272e   2020-01-01 10:01 +0000   test
   third
 
 7:-1,-1   29114dbae42b   1970-01-12 13:46 +0000   User Name <user@hostname>
 # xml style works (--style xml)
 <?xml version="1.0"?>
 <log>
-<logentry revision="8" node="3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57">
+<logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">
 <tag>tip</tag>
 <author email="test">test</author>
 <date>2020-01-01T10:01:00+00:00</date>
 # xml style works (-v --style xml)
 <?xml version="1.0"?>
 <log>
-<logentry revision="8" node="3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57">
+<logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">
 <tag>tip</tag>
 <author email="test">test</author>
 <date>2020-01-01T10:01:00+00:00</date>
 # xml style works (--debug --style xml)
 <?xml version="1.0"?>
 <log>
-<logentry revision="8" node="3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57">
+<logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">
 <tag>tip</tag>
 <parent revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453" />
 <parent revision="-1" node="0000000000000000000000000000000000000000" />
 
 	* fourth, second, third:
 	third
-	[3bdecc1cde0c] [tip]
+	[95c24699272e] [tip]
 
 1970-01-12  User Name  <user@hostname>
 
 files--debug: c
 files--debug: b
 files--debug: a
-manifest: 8:79c71159cb0a
+manifest: 8:94961b75a2da
 manifest: 7:f2dbc354b94e
 manifest: 6:91015e9dbdd7
 manifest: 5:4dc3def4f9b4
 manifest: 2:6e0e82995c35
 manifest: 1:4e8d705b1e53
 manifest: 0:a0c8bcbbb45c
-manifest--verbose: 8:79c71159cb0a
+manifest--verbose: 8:94961b75a2da
 manifest--verbose: 7:f2dbc354b94e
 manifest--verbose: 6:91015e9dbdd7
 manifest--verbose: 5:4dc3def4f9b4
 manifest--verbose: 2:6e0e82995c35
 manifest--verbose: 1:4e8d705b1e53
 manifest--verbose: 0:a0c8bcbbb45c
-manifest--debug: 8:79c71159cb0a1a84add78e7922a1e5e7be34c499
+manifest--debug: 8:94961b75a2da554b4df6fb599e5bfc7d48de0c64
 manifest--debug: 7:f2dbc354b94e5ec0b4f10680ee0cee816101d0bf
 manifest--debug: 6:91015e9dbdd76a6791085d12b0a0ec7fcd22ffbf
 manifest--debug: 5:4dc3def4f9b4c6e8de820f6ee74737f91e96a216
 manifest--debug: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1
 manifest--debug: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55
 manifest--debug: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0
-node: 3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57
+node: 95c24699272ef57d062b8bccc32c878bf841784a
 node: 29114dbae42b9f078cf2714dbe3a86bba8ec7453
 node: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
 node: 13207e5a10d9fd28ec424934298e176197f2c67f
 node: 97054abb4ab824450e9164180baf491ae0078465
 node: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
 node: 1e4e1b8f71e05681d422154f5421e385fec3454f
-node--verbose: 3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57
+node--verbose: 95c24699272ef57d062b8bccc32c878bf841784a
 node--verbose: 29114dbae42b9f078cf2714dbe3a86bba8ec7453
 node--verbose: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
 node--verbose: 13207e5a10d9fd28ec424934298e176197f2c67f
 node--verbose: 97054abb4ab824450e9164180baf491ae0078465
 node--verbose: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
 node--verbose: 1e4e1b8f71e05681d422154f5421e385fec3454f
-node--debug: 3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57
+node--debug: 95c24699272ef57d062b8bccc32c878bf841784a
 node--debug: 29114dbae42b9f078cf2714dbe3a86bba8ec7453
 node--debug: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
 node--debug: 13207e5a10d9fd28ec424934298e176197f2c67f
 no person
 other 1
 line 1
-3bdecc1cde0c
+95c24699272e
 29114dbae42b
 c7b487c6c50e
 13207e5a10d9

File tests/test-convert-darcs.out

 
 7225b30cdf38257d5cc7780772c051b6f33e6d6b 644   a
 1e88685f5ddec574a34c70af492f95b6debc8741 644   b
-d278f41640da5fc303a4cf9894af31c2983fc11d 644   dir2/d
-ef5c76581d78340f568d5f48d679bf307452cbc9 644   ff
+37406831adc447ec2385014019599dfec953c806 644   dir2/d
+b783a337463792a5c7d548ad85a7d3253c16ba8c 644   ff

File tests/test-convert-filemap.out

 % final file versions in this repo:
 9463f52fe115e377cf2878d4fc548117211063f2 644   bar
 94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644   baz
-6ca237634e1f6bee1b6db94292fb44f092a25842 644   copied
+7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644   copied
 3e20847584beff41d7cd16136b7331ab3d754be0 644   dir/file
 75e6d3f8328f5f6ace6bf10b98df793416a09dca 644   dir/file2
 5fe139720576e18e34bcc9f79174db8897c8afe9 644   dir/subdir/file3
 |
 o  0 "0: add foo baz dir/" files: foo
 
-6ca237634e1f6bee1b6db94292fb44f092a25842 644   copied
+7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644   copied
 9a7b52012991e4873687192c3e17e61ba3e837a3 644   foo
 copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
 @  4 "8: change foo" files: foo2
 |
 o  0 "0: add foo baz dir/" files: dir2/file dir2/subdir/file3 foo2
 
-e5e3d520be9be45937d0b06b004fadcd6c221fa2 644   copied2
+d43feacba7a4f1f2080dde4a4b985bd8a0236d46 644   copied2
 3e20847584beff41d7cd16136b7331ab3d754be0 644   dir2/file
 5fe139720576e18e34bcc9f79174db8897c8afe9 644   dir2/subdir/file3
 9a7b52012991e4873687192c3e17e61ba3e837a3 644   foo2

File tests/test-convert-svn-encoding.out

 % convert while testing all possible outputs
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % check tags are in UTF-8
-'1c1b4062874e8197a68e7ce9e498479a37d0215c branch\xc3\xa9e\n'
-'edc96568720ef79eefa6372677b18d855de3abee branch\xc3\xa9\n'
+'221c3fdaf24df5f14c0a64c597581e2eacfb47bb branch\xc3\xa9e\n'
+'7a40952c2db29cf00d9e31df3749e98d8a4bdcbf branch\xc3\xa9\n'

File tests/test-convert-svn-sink.out

 d1
 same
 % rename
-2:7009fc4efb34
+2:eb5169441d43
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
 b
 d1
 % copy
-3:56c519973ce6
+3:60effef6ab48
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
 c
 d1
 % remove
-4:ed4dc9a6f585
+4:87bbe3013fb6
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
 c
 d1
 % executable
-5:f205b3636d77
+5:ff42e473c340
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...

File tests/test-convert-tla.out

 o  0 "initial import" files:
 
 c4072c4b72e1cabace081888efa148ee80ca3cbb 644   a
-623942606de842342ac7b221ae9ccabc13b5d8c8 644   c
-43b4308708a4b36340566684df2e2a074b12ceb0 644 @ test/a-link
-73773e3389ef7ec5a070519b74895d2eaa4ad5db 644 @ test/b
+0201ac32a3a8e86e303dff60366382a54b48a72e 644   c
+c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
+375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b

File tests/test-copy-move-merge.out

   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 583c7b748052 local fb3948d97f07+ remote 40da226db0f0
+ ancestor 583c7b748052 local fb3948d97f07+ remote 7f1309517659
  a: remote moved to c -> m
  a: remote moved to b -> m
 preserving a for resolve of b
 update: a 1/2 files (50.00%)
 picked tool 'internal:merge' for b (binary False symlink False)
 merging a and b to b
-my b@fb3948d97f07+ other b@40da226db0f0 ancestor a@583c7b748052
+my b@fb3948d97f07+ other b@7f1309517659 ancestor a@583c7b748052
  premerge successful
 update: a 2/2 files (100.00%)
 picked tool 'internal:merge' for c (binary False symlink False)
 merging a and c to c
-my c@fb3948d97f07+ other c@40da226db0f0 ancestor a@583c7b748052
+my c@fb3948d97f07+ other c@7f1309517659 ancestor a@583c7b748052
  premerge successful
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)

File tests/test-copy.out

 A b
 b
  b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
-committed changeset 1:386a3cc01532710ca78aed9a54fa2f459c04f29c
+committed changeset 1:76973b01f66a012648546c979ea4c41de9e7d8cd
 we should see two history entries
-changeset:   1:386a3cc01532
+changeset:   1:76973b01f66a
 tag:         tip
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       3      0       0 b789fdd96dc2 000000000000 000000000000
 we should see one log entry for b
-changeset:   1:386a3cc01532
+changeset:   1:76973b01f66a
 tag:         tip
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 
 this should show a revision linked to changeset 1
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      65      0       1 9a263dd772e0 000000000000 000000000000
+     0         0      65      0       1 37d9b5d994ea 000000000000 000000000000
 this should show the rename information in the metadata
+copy: a
 copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
-copy: a
-ed156f22f0a6fde642de0b5eba0cbbb2  .hg/store/data/b.i
+4999f120a3b88713bbefddd195cf5133  .hg/store/data/b.i
 60b725f10c9c85c70d97880dfe8191b3  bsum
 60b725f10c9c85c70d97880dfe8191b3  asum
 checking changesets

File tests/test-copy2.out

   foo
 # should show no parents for tip
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      69      0       1 6ca237634e1f 000000000000 000000000000
-     1        69       6      1       2 7a1ff8e75f5b 6ca237634e1f 000000000000
-     2        75      82      1       3 243dfe60f3d9 000000000000 000000000000
+     0         0      69      0       1 7711d36246cc 000000000000 000000000000
+     1        69       6      1       2 bdf70a2b8d03 7711d36246cc 000000000000
+     2        75      81      1       3 b2558327ea8d 000000000000 000000000000
 # should match
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       5      0       0 2ed2a3912a0b 000000000000 000000000000

File tests/test-debugrename.out

 adding a
 b renamed from a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
-a renamed from b:9a263dd772e0159ddfa70fb8a448bb6c7ec8c69f
+a renamed from b:37d9b5d994eab34eda9c16b195ace52c7b129980
 % test with --rev
 b renamed from a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3

File tests/test-double-merge.out

 created new head
-changeset:   1:7731dad1c2b9
+changeset:   1:d9da848d0adf
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     cp foo bar; change both
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 310fd17130da local 2092631ce82b+ remote 7731dad1c2b9
+ ancestor 310fd17130da local 2092631ce82b+ remote d9da848d0adf
  foo: versions differ -> m
  foo: remote copied to bar -> m
 preserving foo for resolve of bar
 update: foo 1/2 files (50.00%)
 picked tool 'internal:merge' for bar (binary False symlink False)
 merging foo and bar to bar
-my bar@2092631ce82b+ other bar@7731dad1c2b9 ancestor foo@310fd17130da
+my bar@2092631ce82b+ other bar@d9da848d0adf ancestor foo@310fd17130da
  premerge successful
 update: foo 2/2 files (100.00%)
 picked tool 'internal:merge' for foo (binary False symlink False)
 merging foo
-my foo@2092631ce82b+ other foo@7731dad1c2b9 ancestor foo@310fd17130da
+my foo@2092631ce82b+ other foo@d9da848d0adf ancestor foo@310fd17130da
  premerge successful
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)

File tests/test-hgweb-filelog.out

 adding b
 adding a
 adding a
-changeset:   6:38d962e6234d
+changeset:   6:b7682196df1c
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 summary:     change c
 
-diff -r a3b6a9e4507e -r 38d962e6234d c
+diff -r 1a6696706df2 -r b7682196df1c c
 --- a/c	Thu Jan 01 00:00:00 1970 +0000
 +++ b/c	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,1 +1,2 @@
  b
 +c
 
-changeset:   5:a3b6a9e4507e
+changeset:   5:1a6696706df2
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 summary:     mv b
 
-diff -r 52e848cdcd88 -r a3b6a9e4507e b
+diff -r 52e848cdcd88 -r 1a6696706df2 b
 --- a/b	Thu Jan 01 00:00:00 1970 +0000
 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,1 +0,0 @@
 -b
-diff -r 52e848cdcd88 -r a3b6a9e4507e c
+diff -r 52e848cdcd88 -r 1a6696706df2 c
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/c	Thu Jan 01 00:00:00 1970 +0000
 @@ -0,0 +1,1 @@
 <a href="/graph?style=spartan">graph</a>
 <a href="/tags?style=spartan">tags</a>
 <a href="/branches?style=spartan">branches</a>
-<a href="/file/38d962e6234d/c?style=spartan">file</a>
-<a href="/annotate/38d962e6234d/c?style=spartan">annotate</a>
+<a href="/file/b7682196df1c/c?style=spartan">file</a>
+<a href="/annotate/b7682196df1c/c?style=spartan">annotate</a>
 <a type="application/rss+xml" href="/rss-log/tip/c">rss</a>
 <a type="application/atom+xml" href="/atom-log/tip/c" title="Atom feed for test:c">atom</a>
 </div>
 
 <h2>c revision history</h2>
 
-<p>navigate: <small class="navigate"><a href="/log/a3b6a9e4507e/c?style=spartan">(0)</a> <a href="/log/tip/c?style=spartan">tip</a> </small></p>
+<p>navigate: <small class="navigate"><a href="/log/1a6696706df2/c?style=spartan">(0)</a> <a href="/log/tip/c?style=spartan">tip</a> </small></p>
 
 <table class="logEntry parity0">
  <tr>
   <th class="age">1970-01-01:</th>
-  <th class="firstline"><a href="/rev/38d962e6234d?style=spartan">change c</a></th>
+  <th class="firstline"><a href="/rev/b7682196df1c?style=spartan">change c</a></th>
  </tr>
  <tr>
   <th class="revision">revision 1:</td>
   <td class="node">
-   <a href="/file/38d962e6234d/c?style=spartan">38d962e6234d</a>
-   <a href="/diff/38d962e6234d/c?style=spartan">(diff)</a>
-   <a href="/annotate/38d962e6234d/c?style=spartan">(annotate)</a>
+   <a href="/file/b7682196df1c/c?style=spartan">b7682196df1c</a>
+   <a href="/diff/b7682196df1c/c?style=spartan">(diff)</a>
+   <a href="/annotate/b7682196df1c/c?style=spartan">(annotate)</a>
   </td>
  </tr>
  
 <table class="logEntry parity1">
  <tr>
   <th class="age">1970-01-01:</th>
-  <th class="firstline"><a href="/rev/a3b6a9e4507e?style=spartan">mv b</a></th>
+  <th class="firstline"><a href="/rev/1a6696706df2?style=spartan">mv b</a></th>
  </tr>
  <tr>
   <th class="revision">revision 0:</td>
   <td class="node">
-   <a href="/file/a3b6a9e4507e/c?style=spartan">a3b6a9e4507e</a>
-   <a href="/diff/a3b6a9e4507e/c?style=spartan">(diff)</a>
-   <a href="/annotate/a3b6a9e4507e/c?style=spartan">(annotate)</a>
+   <a href="/file/1a6696706df2/c?style=spartan">1a6696706df2</a>
+   <a href="/diff/1a6696706df2/c?style=spartan">(diff)</a>
+   <a href="/annotate/1a6696706df2/c?style=spartan">(annotate)</a>
   </td>
  </tr>
  

File tests/test-http-clone-r.out

      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests

File tests/test-issue1175.out

 b
  b: searching for copy revision for a
  b: copy a:b80de5d138758541c5f05265ad144ab9fa86d1db
-committed changeset 5:755e75751bf67eb4378bca61987df035d90a7a06
+committed changeset 5:89e8e4be0de296fa3d6dd7825ccc44d7dc0f1f3b
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 # HG changeset patch
 # User test
 # Date 0 0
-# Node ID 755e75751bf67eb4378bca61987df035d90a7a06
-# Parent  7399822c2e395fe7d57c2fcf4b310f6fb22f8c2d
+# Node ID 89e8e4be0de296fa3d6dd7825ccc44d7dc0f1f3b
+# Parent  7fc86ba705e717a721dbc361bf8c9bc05a18ca2f
 5
 
 diff --git a/b b/b

File tests/test-issue672.out

   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 81f4b099af3d local c64f439569a9+ remote 2f8037f47a5c
+ ancestor 81f4b099af3d local c64f439569a9+ remote c12dcd37c90a
  1: other deleted -> r
  1a: remote created -> g
 update: 1 1/2 files (50.00%)
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor c64f439569a9 local ac7575e3c052+ remote 746e9549ea96
+ ancestor c64f439569a9 local e327dca35ac8+ remote 746e9549ea96
  1a: local copied/moved to 1 -> m
 preserving 1a for resolve of 1a
 update: 1a 1/1 files (100.00%)
 picked tool 'internal:merge' for 1a (binary False symlink False)
 merging 1a and 1 to 1a
-my 1a@ac7575e3c052+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
+my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor c64f439569a9 local 746e9549ea96+ remote ac7575e3c052
+ ancestor c64f439569a9 local 746e9549ea96+ remote e327dca35ac8
  1: remote moved to 1a -> m
 preserving 1 for resolve of 1a
 removing 1
 update: 1 1/1 files (100.00%)
 picked tool 'internal:merge' for 1a (binary False symlink False)
 merging 1 and 1a to 1a
-my 1a@746e9549ea96+ other 1a@ac7575e3c052 ancestor 1@81f4b099af3d
+my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@81f4b099af3d
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)

File tests/test-keyword.out

 c
  c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
 overwriting c expanding keywords
-committed changeset 2:e22d299ac0c2bd8897b3df5114374b9e4d4ca62f
+committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
 % cat a c
 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
 do not process $Id:
 xxx $
-expand $Id: c,v e22d299ac0c2 1970/01/01 00:00:01 user $
+expand $Id: c,v 25736cf2f5cb 1970/01/01 00:00:01 user $
 do not process $Id:
 xxx $
 % touch copied c
 x/a
  x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
 overwriting x/a expanding keywords
-committed changeset 3:cfa68229c1167443337266ebac453c73b1d5d16e
+committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
 % cat a
-expand $Id: x/a cfa68229c116 Thu, 01 Jan 1970 00:00:03 +0000 user $
+expand $Id: x/a b4560182a3f9 Thu, 01 Jan 1970 00:00:03 +0000 user $
 do not process $Id:
 xxx $
 $Xinfo: User Name <user@example.com>: xa $
 # HG changeset patch
 # User User Name <user@example.com>
 # Date 3 0
-# Node ID cfa68229c1167443337266ebac453c73b1d5d16e
+# Node ID b4560182a3f9a358179fd2d835c15e9da379c1e4
 # Parent  bb948857c743469b22bbf51f7ec8112279ca5d83
 xa
 
-diff -r bb948857c743 -r cfa68229c116 x/a
+diff -r bb948857c743 -r b4560182a3f9 x/a
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/x/a	Thu Jan 01 00:00:03 1970 +0000
 @@ -0,0 +1,4 @@
 created new head
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
-$Id: m 8731e1dadc99 Thu, 01 Jan 1970 00:00:00 +0000 test $
+$Id: m 27d48ee14f67 Thu, 01 Jan 1970 00:00:00 +0000 test $
 foo
 % conflict
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 foo
 >>>>>>> other
 % resolve to local
-$Id: m 43dfd2854b5b Thu, 01 Jan 1970 00:00:00 +0000 test $
+$Id: m 41efa6d38e9b Thu, 01 Jan 1970 00:00:00 +0000 test $
 bar
 % test restricted mode with transplant -b
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 marked working directory as branch foo
 created new head
 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-applying 1c4378f51c4d
-1c4378f51c4d transplanted to 7d855abcab87
+applying 4aa30d025d50
+4aa30d025d50 transplanted to 5a4da427c162
 % no expansion in changeset
-changeset:   11:7d855abcab87
+changeset:   11:5a4da427c162
 tag:         tip
-parent:      9:43dfd2854b5b
+parent:      9:41efa6d38e9b
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 summary:     9foobranch
 
-diff -r 43dfd2854b5b -r 7d855abcab87 a
+diff -r 41efa6d38e9b -r 5a4da427c162 a
 --- a/a	Thu Jan 01 00:00:00 1970 +0000
 +++ b/a	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,3 +1,4 @@
 
 % expansion in file
 foobranch
-expand $Id: a 7d855abcab87 Thu, 01 Jan 1970 00:00:00 +0000 test $
+expand $Id: a 5a4da427c162 Thu, 01 Jan 1970 00:00:00 +0000 test $
 % switch off expansion
 % kwshrink with unknown file u
 overwriting a shrinking keywords

File tests/test-log.out

 % -f, directory
 abort: cannot follow nonexistent file: "dir"
 % -f, but no args
-changeset:   4:b30c444c7c84
+changeset:   4:66c1345dc4f9
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:05 1970 +0000
 summary:     e
 
-changeset:   3:16b60bf3f99a
+changeset:   3:7c6c671bb7cc
 user:        test
 date:        Thu Jan 01 00:00:04 1970 +0000
 summary:     d
 
-changeset:   2:21fba396af4c
+changeset:   2:41dd4284081e
 user:        test
 date:        Thu Jan 01 00:00:03 1970 +0000
 summary:     c
 
-changeset:   1:c0296dabce9b
+changeset:   1:784de7cef101
 user:        test
 date:        Thu Jan 01 00:00:02 1970 +0000
 summary:     b
 
 
 % many renames
-changeset:   4:b30c444c7c84
+changeset:   4:66c1345dc4f9
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:05 1970 +0000
 e
 
 
-changeset:   2:21fba396af4c
+changeset:   2:41dd4284081e
 user:        test
 date:        Thu Jan 01 00:00:03 1970 +0000
 files:       b dir/b
 c
 
 
-changeset:   1:c0296dabce9b
+changeset:   1:784de7cef101
 user:        test
 date:        Thu Jan 01 00:00:02 1970 +0000
 files:       b
 % log copies, execute bit set
 6 
 % log -p d
-changeset:   3:16b60bf3f99a
+changeset:   3:7c6c671bb7cc
 user:        test
 date:        Thu Jan 01 00:00:04 1970 +0000
 files:       a b d
 d
 
 
-diff -r 21fba396af4c -r 16b60bf3f99a d
+diff -r 41dd4284081e -r 7c6c671bb7cc d
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/d	Thu Jan 01 00:00:04 1970 +0000
 @@ -0,0 +1,1 @@

File tests/test-merge-commit.out

 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       7      0       0 690b295714ae 000000000000 000000000000
      1         7      13      1       1 9e25c27b8757 690b295714ae 000000000000
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 created new head
-4:2d2f9a22c82b 2:0a3ab4856510 
-3:7d3b554bfdf1 2:0a3ab4856510 1:5cd961e4045d 
-2:0a3ab4856510 0:2665aaee66e9 
+4:2263c1be0967 2:0f2ff26688b9 
+3:0555950ead28 2:0f2ff26688b9 1:5cd961e4045d 
+2:0f2ff26688b9 0:2665aaee66e9 
 1:5cd961e4045d 
 0:2665aaee66e9 
 % this should use bar@rev2 as the ancestor
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 7d3b554bfdf1
+ ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
  bar: versions differ -> m
 preserving bar for resolve of bar
 update: bar 1/1 files (100.00%)
 picked tool 'internal:merge' for bar (binary False symlink False)
 merging bar
-my bar@2d2f9a22c82b+ other bar@7d3b554bfdf1 ancestor bar@0a3ab4856510
+my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
-     2       153       7      2       4 4defe5eec418 da78c0659611 000000000000
-     3       160      13      3       5 4663501da27b 4defe5eec418 4b358025380b
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
+     2       153       7      2       4 ff4b45017382 d35118874825 000000000000
+     3       160      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
 
 
 requesting all changes
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       7      0       0 690b295714ae 000000000000 000000000000
      1         7      13      1       1 9e25c27b8757 690b295714ae 000000000000
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 created new head
-4:2d2f9a22c82b 2:0a3ab4856510 
-3:96ab80c60897 1:5cd961e4045d 2:0a3ab4856510 
-2:0a3ab4856510 0:2665aaee66e9 
+4:2263c1be0967 2:0f2ff26688b9 
+3:3ffa6b9e35f0 1:5cd961e4045d 2:0f2ff26688b9 
+2:0f2ff26688b9 0:2665aaee66e9 
 1:5cd961e4045d 
 0:2665aaee66e9 
 % this should use bar@rev2 as the ancestor
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 96ab80c60897
+ ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
  bar: versions differ -> m
 preserving bar for resolve of bar
 update: bar 1/1 files (100.00%)
 picked tool 'internal:merge' for bar (binary False symlink False)
 merging bar
-my bar@2d2f9a22c82b+ other bar@96ab80c60897 ancestor bar@0a3ab4856510
+my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
-     2       153       7      2       4 4defe5eec418 da78c0659611 000000000000
-     3       160      13      3       5 4663501da27b 4defe5eec418 4b358025380b
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
+     2       153       7      2       4 ff4b45017382 d35118874825 000000000000
+     3       160      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd

File tests/test-merge10.out

 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 M testdir/subdir/a
-diff -r d02b3fc32762 testdir/subdir/a
+diff -r f7459795031e testdir/subdir/a
 --- a/testdir/subdir/a
 +++ b/testdir/subdir/a
 @@ -1,1 +1,1 @@

File tests/test-mq-git.out

 copy to b
 % git=auto: git patch when using --git
 # HG changeset patch
-# Parent 2962f232b49d41ebc26c591ec8d556724be213ab
+# Parent 99586d5f048c399e20f81cee41fbb3809c0e735d
 # Date 0 0
 
 diff --git a/regular b/regular
 +regular
 % git=auto: regular patch after qrefresh without --git
 # HG changeset patch
-# Parent 2962f232b49d41ebc26c591ec8d556724be213ab
+# Parent 99586d5f048c399e20f81cee41fbb3809c0e735d
 # Date 0 0
 
-diff -r 2962f232b49d regular
+diff -r 99586d5f048c regular
 --- /dev/null
 +++ b/regular
 @@ -0,0 +1,1 @@
 # Parent ef8dafc9fa4caff80f6e243eb0171bcd60c455b4
 # Date 0 0
 
-diff -r ef8dafc9fa4c -r 110cde11d262 b
+diff -r ef8dafc9fa4c -r a70404f79ba3 b
 --- /dev/null
 +++ b/b
 @@ -0,0 +1,1 @@

File tests/test-push-r.out

      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests

File tests/test-record.out

 rename from empty-rw
 rename to empty-rename
 examine changes to 'empty-rw' and 'empty-rename'? [Ynsfdaq?] 
-changeset:   1:df251d174da3
+changeset:   1:d695e8dcb197
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:01 1970 +0000
 copy from empty-rename
 copy to empty-copy
 examine changes to 'empty-rename' and 'empty-copy'? [Ynsfdaq?] 
-changeset:   2:b63ea3939f8d
+changeset:   2:1d4b90bea524
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:02 1970 +0000
 diff --git a/empty-copy b/empty-copy
 deleted file mode 100644
 examine changes to 'empty-copy'? [Ynsfdaq?] 
-changeset:   3:a2546574bce9
+changeset:   3:b39a238f01a1
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:03 1970 +0000
 new file mode 100644
 this is a binary file
 examine changes to 'tip.bundle'? [Ynsfdaq?] 
-changeset:   4:9e998a545a8b
+changeset:   4:ad816da3711e
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:04 1970 +0000
 summary:     binary
 
-diff -r a2546574bce9 -r 9e998a545a8b tip.bundle
+diff -r b39a238f01a1 -r ad816da3711e tip.bundle
 Binary file tip.bundle has changed
 
 % change binary file
 diff --git a/tip.bundle b/tip.bundle
 this modifies a binary file (all or nothing)
 examine changes to 'tip.bundle'? [Ynsfdaq?] 
-changeset:   5:93d05561507d
+changeset:   5:dccd6f3eb485
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:05 1970 +0000
 summary:     binary-change
 
-diff -r 9e998a545a8b -r 93d05561507d tip.bundle
+diff -r ad816da3711e -r dccd6f3eb485 tip.bundle
 Binary file tip.bundle has changed
 
 % rename and change binary file
 rename to top.bundle
 this modifies a binary file (all or nothing)
 examine changes to 'tip.bundle' and 'top.bundle'? [Ynsfdaq?] 
-changeset:   6:699cc1bea9aa
+changeset:   6:7fa44105f5b3
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:06 1970 +0000
 summary:     binary-change-rename
 
-diff -r 93d05561507d -r 699cc1bea9aa tip.bundle
+diff -r dccd6f3eb485 -r 7fa44105f5b3 tip.bundle
 Binary file tip.bundle has changed
-diff -r 93d05561507d -r 699cc1bea9aa top.bundle
+diff -r dccd6f3eb485 -r 7fa44105f5b3 top.bundle
 Binary file top.bundle has changed
 
 % add plain file
 diff --git a/plain b/plain
 new file mode 100644
 examine changes to 'plain'? [Ynsfdaq?] 
-changeset:   7:118ed744216b
+changeset:   7:11fb457c1be4
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:07 1970 +0000
 summary:     plain
 
-diff -r 699cc1bea9aa -r 118ed744216b plain
+diff -r 7fa44105f5b3 -r 11fb457c1be4 plain
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:07 1970 +0000
 @@ -0,0 +1,10 @@
  9
  10
  11
-+cf81a2760718a74d44c0c2eecb72f659e63a69c5
++7264f99c5f5ff3261504828afa4fb4d406c3af54
 \ No newline at end of file
 record this change to 'plain'? [Ynsfdaq?] % modify end of plain file, add EOL
 diff --git a/plain b/plain
  9
  10
  11
--cf81a2760718a74d44c0c2eecb72f659e63a69c5
+-7264f99c5f5ff3261504828afa4fb4d406c3af54
 \ No newline at end of file
-+cf81a2760718a74d44c0c2eecb72f659e63a69c5
++7264f99c5f5ff3261504828afa4fb4d406c3af54
 record this change to 'plain'? [Ynsfdaq?] % modify beginning, trim end, record both
 diff --git a/plain b/plain
 2 hunks, 4 lines changed
  9
  10
 -11
--cf81a2760718a74d44c0c2eecb72f659e63a69c5
+-7264f99c5f5ff3261504828afa4fb4d406c3af54
 record change 2/2 to 'plain'? [Ynsfdaq?] 
-changeset:   11:d09ab1967dab
+changeset:   11:efca65c9b09e
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:10 1970 +0000
 summary:     begin-and-end
 
-diff -r e2ecd9b0b78d -r d09ab1967dab plain
+diff -r cd07d48e8cbe -r efca65c9b09e plain
 --- a/plain	Thu Jan 01 00:00:10 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:10 1970 +0000
 @@ -1,4 +1,4 @@
  9
  10
 -11
--cf81a2760718a74d44c0c2eecb72f659e63a69c5
+-7264f99c5f5ff3261504828afa4fb4d406c3af54
 
 % trim beginning, modify end
 % record end
 -10
 +10.new
 record change 2/2 to 'plain'? [Ynsfdaq?] 
-changeset:   12:44516c9708ae
+changeset:   12:7d1e66983c15
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:11 1970 +0000
 summary:     end-only
 
-diff -r d09ab1967dab -r 44516c9708ae plain
+diff -r efca65c9b09e -r 7d1e66983c15 plain
 --- a/plain	Thu Jan 01 00:00:10 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:11 1970 +0000
 @@ -7,4 +7,4 @@
  5
  6
 record this change to 'plain'? [Ynsfdaq?] 
-changeset:   13:3ebbace64a8d
+changeset:   13:a09fc62a0e61
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:12 1970 +0000
 summary:     begin-only
 
-diff -r 44516c9708ae -r 3ebbace64a8d plain
+diff -r 7d1e66983c15 -r a09fc62a0e61 plain
 --- a/plain	Thu Jan 01 00:00:11 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:12 1970 +0000
 @@ -1,6 +1,3 @@
 +10
 +11
 record change 3/3 to 'plain'? [Ynsfdaq?] 
-changeset:   15:c1c639d8b268
+changeset:   15:7d137997f3a6
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:14 1970 +0000
 summary:     middle-only
 
-diff -r efc0dad7bd9f -r c1c639d8b268 plain
+diff -r c0b8e5fb0be6 -r 7d137997f3a6 plain
 --- a/plain	Thu Jan 01 00:00:13 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:14 1970 +0000
 @@ -1,5 +1,10 @@
 +10
 +11
 record this change to 'plain'? [Ynsfdaq?] 
-changeset:   16:80b74bbc7808
+changeset:   16:4959e3ff13eb
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:15 1970 +0000
 summary:     end-only
 
-diff -r c1c639d8b268 -r 80b74bbc7808 plain
+diff -r 7d137997f3a6 -r 4959e3ff13eb plain
 --- a/plain	Thu Jan 01 00:00:14 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:15 1970 +0000
 @@ -9,3 +9,5 @@
  a
 +a
 record this change to 'subdir/a'? [Ynsfdaq?] 
-changeset:   18:33ff5c4fb017
+changeset:   18:40698cd490b2
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:16 1970 +0000
 summary:     subdir-change
 
-diff -r aecf2b2ea83c -r 33ff5c4fb017 subdir/a
+diff -r 661eacdc08b9 -r 40698cd490b2 subdir/a
 --- a/subdir/a	Thu Jan 01 00:00:16 1970 +0000
 +++ b/subdir/a	Thu Jan 01 00:00:16 1970 +0000
 @@ -1,1 +1,2 @@
 examine changes to 'subdir/f1'? [Ynsfdaq?] diff --git a/subdir/f2 b/subdir/f2
 1 hunks, 1 lines changed
 examine changes to 'subdir/f2'? [Ynsfdaq?] 
-changeset:   20:094183e04b7c
+changeset:   20:d2d8c25276a8
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:18 1970 +0000
 summary:     x
 
-diff -r f9e855cd9374 -r 094183e04b7c subdir/f2
+diff -r 25eb2a7694fb -r d2d8c25276a8 subdir/f2
 --- a/subdir/f2	Thu Jan 01 00:00:17 1970 +0000
 +++ b/subdir/f2	Thu Jan 01 00:00:18 1970 +0000
 @@ -1,1 +1,2 @@
 diff --git a/subdir/f1 b/subdir/f1
 1 hunks, 1 lines changed
 examine changes to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   21:38164785b0ef
+changeset:   21:1013f51ce32f
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:19 1970 +0000
 summary:     y
 
-diff -r 094183e04b7c -r 38164785b0ef subdir/f1
+diff -r d2d8c25276a8 -r 1013f51ce32f subdir/f1
 --- a/subdir/f1	Thu Jan 01 00:00:18 1970 +0000
 +++ b/subdir/f1	Thu Jan 01 00:00:19 1970 +0000
 @@ -1,1 +1,2 @@
  a
 +a
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   22:a891589cb933
+changeset:   22:5df857735621
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:20 1970 +0000
  a
 +b
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   23:befa0dae6201
+changeset:   23:a4ae36a78715
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:21 1970 +0000
  b
 +c
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   24:8fd83ff53ce6
+changeset:   24:1460f6e47966
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:22 1970 +0000
  c
 +d
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   25:49b3838dc9e7
+changeset:   25:5bacc1f6e9cf
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:23 1970 +0000
 summary:     w1
 
-diff -r 8fd83ff53ce6 -r 49b3838dc9e7 subdir/f1
+diff -r 1460f6e47966 -r 5bacc1f6e9cf subdir/f1
 --- a/subdir/f1	Thu Jan 01 00:00:22 1970 +0000
 +++ b/subdir/f1	Thu Jan 01 00:00:23 1970 +0000
 @@ -3,3 +3,4 @@

File tests/test-rename-dir-merge.out

   file a/d -> b/d
 resolving manifests
  overwrite None partial False
- ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 55119e611c80
+ ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 397f8b00a740
  a/d: remote renamed directory to b/d -> d
  a/c: remote renamed directory to b/c -> d
  a/b: other deleted -> r
   file a/c -> b/c
 resolving manifests
  overwrite None partial False
- ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb
+ ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
  None: local renamed directory to b/c -> d
 update:None 1/1 files (100.00%)
 getting a/c to b/c

File tests/test-rename-merge1.out

  a2: divergent renames -> dr
 resolving manifests
  overwrite None partial False
- ancestor af1939970a1c local f26ec4fc3fa3+ remote 8e765a822af2
+ ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
  a: remote moved to b -> m
  b2: remote created -> g
 preserving a for resolve of b
 update: a 1/3 files (33.33%)
 picked tool 'internal:merge' for b (binary False symlink False)
 merging a and b to b
-my b@f26ec4fc3fa3+ other b@8e765a822af2 ancestor a@af1939970a1c
+my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
  premerge successful
 update: a2 2/3 files (66.67%)
 warning: detected divergent renames of a2 to:
 C c2
 blahblah
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      67      0       1 dc51707dfc98 000000000000 000000000000
-     1        67      72      1       3 b2494a44f0a9 000000000000 dc51707dfc98
+     0         0      67      0       1 57eacc201a7f 000000000000 000000000000
+     1        67      72      1       3 4727ba907962 000000000000 57eacc201a7f
 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66

File tests/test-rename-merge2.out

   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local e300d1c794ec+ remote 735846fee2d7
+ ancestor 924404dff337 local e300d1c794ec+ remote 4ce40f5aca24
  rev: versions differ -> m
  a: remote copied to b -> m
 preserving a for resolve of b
 update: a 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging a and b to b
-my b@e300d1c794ec+ other b@735846fee2d7 ancestor a@924404dff337
+my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
  premerge successful
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@e300d1c794ec+ other rev@735846fee2d7 ancestor rev@924404dff337
+my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote f4db7e329e71
+ ancestor 924404dff337 local 86a2aa42fc76+ remote f4db7e329e71
  a: remote is newer -> g
  b: local copied/moved to a -> m
  rev: versions differ -> m
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ac809aeed39a+ other a@f4db7e329e71 ancestor a@924404dff337
+my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337
  premerge successful
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@f4db7e329e71 ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local e300d1c794ec+ remote e03727d2d66b
+ ancestor 924404dff337 local e300d1c794ec+ remote bdb19105162a
  rev: versions differ -> m
  a: remote moved to b -> m
 preserving a for resolve of b
 update: a 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging a and b to b
-my b@e300d1c794ec+ other b@e03727d2d66b ancestor a@924404dff337
+my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337
  premerge successful
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@e300d1c794ec+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote f4db7e329e71
+ ancestor 924404dff337 local 02963e448370+ remote f4db7e329e71
  b: local copied/moved to a -> m
  rev: versions differ -> m
 preserving b for resolve of b
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ecf3cb2a4219+ other a@f4db7e329e71 ancestor a@924404dff337
+my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337
  premerge successful
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@f4db7e329e71 ancestor rev@924404dff337
+my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 94b33a1b7f2d+ remote 735846fee2d7
+ ancestor 924404dff337 local 94b33a1b7f2d+ remote 4ce40f5aca24
  rev: versions differ -> m
  b: remote created -> g
 preserving rev for resolve of rev
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337
+my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote 97c705ade336
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336
  rev: versions differ -> m
 preserving rev for resolve of rev
 update: rev 1/1 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 94b33a1b7f2d+ remote e03727d2d66b
+ ancestor 924404dff337 local 94b33a1b7f2d+ remote bdb19105162a
  a: other deleted -> r
  rev: versions differ -> m
  b: remote created -> g
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
 1 files updated, 1 files merged, 1 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote 97c705ade336
+ ancestor 924404dff337 local 02963e448370+ remote 97c705ade336
  rev: versions differ -> m
 preserving rev for resolve of rev
 update: rev 1/1 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337
+my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ec03c2ca8642+ remote 79cc6877a3b7
+ ancestor 924404dff337 local 62e7bf090eba+ remote 49b6d8032493
  b: versions differ -> m
  rev: versions differ -> m
 preserving b for resolve of b
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ec03c2ca8642+ other b@79cc6877a3b7 ancestor a@924404dff337
+my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ec03c2ca8642+ other rev@79cc6877a3b7 ancestor rev@924404dff337
+my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
  a: divergent renames -> dr
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote e6abcc1a30c2
+ ancestor 924404dff337 local 02963e448370+ remote fe905ef2c33e
  rev: versions differ -> m
  c: remote created -> g
 preserving rev for resolve of rev
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@e6abcc1a30c2 ancestor rev@924404dff337
+my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote af30c7647fc7
+ ancestor 924404dff337 local 86a2aa42fc76+ remote af30c7647fc7
  b: versions differ -> m
  rev: versions differ -> m
 preserving b for resolve of b
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ac809aeed39a+ other b@af30c7647fc7 ancestor b@000000000000
+my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@af30c7647fc7 ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 59318016310c+ remote e03727d2d66b
+ ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
  a: other deleted -> r
  b: versions differ -> m
  rev: versions differ -> m
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000
+my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 1 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote 8dbce441892a
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
  a: remote is newer -> g
  b: versions differ -> m
  rev: versions differ -> m
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000
+my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 59318016310c+ remote e03727d2d66b
+ ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
  a: other deleted -> r
  b: versions differ -> m
  rev: versions differ -> m
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000
+my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 1 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote 8dbce441892a
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
  a: remote is newer -> g
  b: versions differ -> m
  rev: versions differ -> m
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000
+my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 0b76e65c8289+ remote 735846fee2d7
+ ancestor 924404dff337 local 0b76e65c8289+ remote 4ce40f5aca24
  b: versions differ -> m
  rev: versions differ -> m
 preserving b for resolve of b
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@0b76e65c8289+ other b@735846fee2d7 ancestor b@000000000000
+my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@0b76e65c8289+ other rev@735846fee2d7 ancestor rev@924404dff337
+my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote 8dbce441892a
+ ancestor 924404dff337 local 02963e448370+ remote 8dbce441892a
  b: versions differ -> m
  rev: versions differ -> m
 remote changed a which local deleted
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ecf3cb2a4219+ other b@8dbce441892a ancestor b@000000000000
+my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@8dbce441892a ancestor rev@924404dff337
+my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 0b76e65c8289+ remote e03727d2d66b
+ ancestor 924404dff337 local 0b76e65c8289+ remote bdb19105162a
  local changed a which remote deleted
 use (c)hanged version or (d)elete? c
  a: prompt keep -> a
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@0b76e65c8289+ other b@e03727d2d66b ancestor b@000000000000
+my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@0b76e65c8289+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local e300d1c794ec+ remote 79cc6877a3b7
+ ancestor 924404dff337 local e300d1c794ec+ remote 49b6d8032493
  rev: versions differ -> m
  a: remote moved to b -> m
 preserving a for resolve of b
 update: a 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging a and b to b
-my b@e300d1c794ec+ other b@79cc6877a3b7 ancestor a@924404dff337
+my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@e300d1c794ec+ other rev@79cc6877a3b7 ancestor rev@924404dff337
+my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ec03c2ca8642+ remote f4db7e329e71
+ ancestor 924404dff337 local 62e7bf090eba+ remote f4db7e329e71
  b: local copied/moved to a -> m
  rev: versions differ -> m
 preserving b for resolve of b
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ec03c2ca8642+ other a@f4db7e329e71 ancestor a@924404dff337
+my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ec03c2ca8642+ other rev@f4db7e329e71 ancestor rev@924404dff337
+my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote 2b958612230f
+ ancestor 924404dff337 local 02963e448370+ remote 2b958612230f
  b: local copied/moved to a -> m
  rev: versions differ -> m
  c: remote created -> g
 update: b 1/3 files (33.33%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ecf3cb2a4219+ other a@2b958612230f ancestor a@924404dff337
+my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337
  premerge successful
 update: c 2/3 files (66.67%)
 getting c
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@2b958612230f ancestor rev@924404dff337
+my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------

File tests/test-ssh-clone-r.out

      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests

File tests/test-win32text.out

 adding file changes
 added 2 changesets with 2 changes to 2 files
 Attempt to commit or push text file(s) using CRLF line endings
-in b94ebd309a6d: g
+in bc2d09796734: g
 in b1aa5cde7ff4: f
 
 To prevent this mistake in your local repository,
 
 and now for something completely different
 Attempt to commit or push text file(s) using CRLF line endings
-in cefdb8d0b741: d/f2
+in 053ba1a3035a: d/f2
 transaction abort!
 rollback completed
 abort: pretxncommit.crlf hook failed
 forgetting d/f2
 
 
-changeset:   5:d4ea9ae21be3
+changeset:   5:f0b1c8d75fce
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 5
 
 
-changeset:   4:6ba409927d51
+changeset:   4:77796dbcd4ad
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f
 4
 
 
-changeset:   3:788a4e595187
+changeset:   3:7c1b5430b350
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f g
 2.3
 
 
-changeset:   2:b94ebd309a6d
+changeset:   2:bc2d09796734
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       g
 adding dupe/b
 adding dupe/c
 adding dupe/d
-changeset:   8:7654104f33c3
+changeset:   8:67ac5962ab43
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 d
 
 
-changeset:   7:9be4c2808cc9
+changeset:   7:68c127d1834e
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       b c
 b/c
 
 
-changeset:   6:aa4367ed325a
+changeset:   6:adbf8bf7f31d
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000