changeset 844:fffe8883960b

git_handler: mark source for rename info as Git or Mercurial See inline comments for why the additional metadata needs to be stored. This literally breaks all the hashes because of the additional metadata. The changing of hashes is unfortunate but necessary to preserve bidirectionality. While this could be broken up into multiple commits, there was no way to do that while preserving bidirectionality. Following the principle that every intermediate commit must result in a correct state, I decided to combine the commits.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 02 Dec 2014 14:17:09 -0800
parents da804eac2b00
children 4f0b86da5e72
files hggit/git_handler.py tests/test-bookmark-workflow.t tests/test-branch-bookmark-suffix.t tests/test-clone.t tests/test-convergedmerge.t tests/test-empty-working-tree.t tests/test-encoding.t tests/test-extra.t tests/test-file-removal.t tests/test-git-clone.t tests/test-git-submodules.t tests/test-git-tags.t tests/test-git-workflow.t tests/test-hg-author.t tests/test-hg-branch.t tests/test-hg-tags-invalid.t tests/test-hg-tags.t tests/test-incoming.t tests/test-keywords.t tests/test-octopus.t tests/test-outgoing.t tests/test-pull-after-strip.t tests/test-pull.t tests/test-push.t tests/test-renames.t tests/test-subrepos.t
diffstat 26 files changed, 401 insertions(+), 255 deletions(-) [+]
line wrap: on
line diff
--- a/hggit/git_handler.py	Tue Dec 02 15:57:21 2014 -0800
+++ b/hggit/git_handler.py	Tue Dec 02 14:17:09 2014 -0800
@@ -620,29 +620,31 @@
         for i, field, value in git_extraitems:
             git_extra.append((urllib.unquote(field), urllib.unquote(value)))
 
-        renames = []
-        for f in ctx.files():
-            if f not in ctx.manifest():
-                continue
-            rename = ctx.filectx(f).renamed()
-            if rename:
-                renames.append((rename[0], f))
+        if extra.get('hg-git-rename-source', None) != 'git':
+            renames = []
+            for f in ctx.files():
+                if f not in ctx.manifest():
+                    continue
+                rename = ctx.filectx(f).renamed()
+                if rename:
+                    renames.append((rename[0], f))
 
-        if renames:
-            for oldfile, newfile in renames:
-                if extra_in_message:
-                    extra_message += ("rename : " + oldfile + " => " +
-                                      newfile + "\n")
-                else:
-                    spec = '%s:%s' % (urllib.quote(oldfile),
-                                      urllib.quote(newfile))
-                    git_extra.append(('HG:rename', spec))
+            if renames:
+                for oldfile, newfile in renames:
+                    if extra_in_message:
+                        extra_message += ("rename : " + oldfile + " => " +
+                                          newfile + "\n")
+                    else:
+                        spec = '%s:%s' % (urllib.quote(oldfile),
+                                          urllib.quote(newfile))
+                        git_extra.append(('HG:rename', spec))
 
         # hg extra items always go at the end
         extraitems = extra.items()
         extraitems.sort()
         for key, value in extraitems:
-            if key in ('author', 'committer', 'encoding', 'message', 'branch', 'hg-git'):
+            if key in ('author', 'committer', 'encoding', 'message', 'branch',
+                       'hg-git', 'hg-git-rename-source'):
                 continue
             else:
                 if extra_in_message:
@@ -656,6 +658,13 @@
         if extra_message:
             message += "\n--HG--\n" + extra_message
 
+        if (extra.get('hg-git-rename-source', None) != 'git'
+            and not extra_in_message and not git_extra):
+            # We need to store this if no other metadata is stored. This
+            # indicates that when reimporting the commit into Mercurial we'll
+            # know not to detect renames.
+            git_extra.append(('HG:rename-source', 'hg'))
+
         return message, git_extra
 
     def get_git_incoming(self, refs):
@@ -690,6 +699,11 @@
              commit.message, commit.extra)
         if hg_renames is None:
             detect_renames = True
+            # We have to store this unconditionally, even if there are no
+            # renames detected from Git. This is because we export an extra
+            # 'HG:rename-source' Git parameter when this isn't set, which will
+            # break bidirectionality.
+            extra['hg-git-rename-source'] = 'git'
         else:
             renames = hg_renames
 
--- a/tests/test-bookmark-workflow.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-bookmark-workflow.t	Tue Dec 02 14:17:09 2014 -0800
@@ -79,10 +79,10 @@
   $ hg clone -q gitremoterepo hggitlocalrepo
   $ cd hggitlocalrepo
   $ hggitstate
-    3 fc2664cac217 55b133e1d558 "add delta" bookmarks: [master]
-    2 d85ced7ae9d6 d338971a96e2 "add gamma" bookmarks: []
-    1 7bcd915dc873 9497a4ee62e1 "add beta" bookmarks: [b1]
-    0 3442585be8a6 7eeab2ea75ec "add alpha" bookmarks: []
+    3 03769a650ded 55b133e1d558 "add delta" bookmarks: [master]
+    2 ca33a262eb46 d338971a96e2 "add gamma" bookmarks: []
+    1 7fe02317c63d 9497a4ee62e1 "add beta" bookmarks: [b1]
+    0 ff7a2f2d8d70 7eeab2ea75ec "add alpha" bookmarks: []
   $ cd ..
 
 No changes
@@ -193,14 +193,14 @@
   $ hg bookmark -fr 2 b1
   $ hg bookmark -r 0 b2
   $ hgstate
-    3 fc2664cac217 "add delta" bookmarks: [master]
-    2 d85ced7ae9d6 "add gamma" bookmarks: [b1]
-    1 7bcd915dc873 "add beta" bookmarks: []
-    0 3442585be8a6 "add alpha" bookmarks: [b2]
+    3 03769a650ded "add delta" bookmarks: [master]
+    2 ca33a262eb46 "add gamma" bookmarks: [b1]
+    1 7fe02317c63d "add beta" bookmarks: []
+    0 ff7a2f2d8d70 "add alpha" bookmarks: [b2]
   $ hg incoming -B
   comparing with $TESTTMP/gitremoterepo
   searching for changed bookmarks
-     b3                        fc2664cac217
+     b3                        03769a650ded
      b4                        fcfd2c0262db
   $ hg outgoing
   comparing with $TESTTMP/gitremoterepo
@@ -212,5 +212,5 @@
   $ hg outgoing -B
   comparing with $TESTTMP/gitremoterepo
   searching for changed bookmarks
-     b2                        3442585be8a6
+     b2                        ff7a2f2d8d70
   $ cd ..
--- a/tests/test-branch-bookmark-suffix.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-branch-bookmark-suffix.t	Tue Dec 02 14:17:09 2014 -0800
@@ -95,8 +95,8 @@
   $ commit -m "append f2"
   $ git push origin
   To $TESTTMP/gitrepo1
-     bbfe79a..d8aef79  branch1 -> branch1
-     288e92b..f8f8de5  branch2 -> branch2
+     5cbc2d4..776fecd  branch1 -> branch1
+     26a4009..e67b2e2  branch2 -> branch2
   $ cd ..
 
   $ cd hgrepo
@@ -105,7 +105,7 @@
   importing git objects into hg
   (run 'hg heads' to see heads)
   $ hg log --graph
-  o  changeset:   3:0a696ec0f478
+  o  changeset:   3:ae8eb55f7090
   |  bookmark:    branch2_bookmark
   |  tag:         default/branch2
   |  tag:         tip
@@ -114,7 +114,7 @@
   |  date:        Mon Jan 01 00:00:13 2007 +0000
   |  summary:     append f2
   |
-  | o  changeset:   2:49db35e15e81
+  | o  changeset:   2:8211cade99e4
   | |  bookmark:    branch1_bookmark
   | |  tag:         default/branch1
   | |  parent:      0:40a840c1f8ae
--- a/tests/test-clone.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-clone.t	Tue Dec 02 14:17:09 2014 -0800
@@ -23,7 +23,7 @@
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo-a log --graph | egrep -v ': *(beta|master)'
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/master
      tag:         tip
@@ -36,14 +36,14 @@
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo-b log --graph | egrep -v ': *(beta|master)'
-  @  changeset:   1:7bcd915dc873
+  @  changeset:   1:7fe02317c63d
   |  tag:         default/beta
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/master
      user:        test <test@example.org>
--- a/tests/test-convergedmerge.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-convergedmerge.t	Tue Dec 02 14:17:09 2014 -0800
@@ -76,4 +76,4 @@
        origin
   
   $ hg -R hgrepo2 gverify
-  verifying rev eaa21d002113 against git commit efe74cc1e0ede609e3ab5983e61d780a10177ef3
+  verifying rev eaa21d002113 against git commit fb8c9e2afe5418cfff337eeed79fad5dd58826f0
--- a/tests/test-empty-working-tree.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-empty-working-tree.t	Tue Dec 02 14:17:09 2014 -0800
@@ -17,7 +17,7 @@
   $ hg log -r tip --template 'files: {files}\n'
   files: 
   $ hg gverify
-  verifying rev 2c7bb41124ca against git commit 678256865a8c85ae925bf834369264193c88f8de
+  verifying rev 01708ca54a8f against git commit 678256865a8c85ae925bf834369264193c88f8de
 
   $ hg gclear
   clearing out the git cache data
--- a/tests/test-encoding.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-encoding.t	Tue Dec 02 14:17:09 2014 -0800
@@ -32,10 +32,10 @@
   $ cd hgrepo
 
   $ HGENCODING=utf-8 hg log --graph --debug | grep -v ': *master' | grep -v 'phase:' | grep -v ': *author=' | grep -v ': *message='
-  @  changeset:   3:c3d3e39fc04f7e2e8cdb95f090415ec1ddc1be70
+  @  changeset:   3:b8a0ac52f339ccd6d5729508bac4aee6e8b489d8
   |  tag:         default/master
   |  tag:         tip
-  |  parent:      2:f8aa41895a3a771a72520ca205a4685b76649fdd
+  |  parent:      2:8bc4d64940260d4a1e70b54c099d3a76c83ff41e
   |  parent:      -1:0000000000000000000000000000000000000000
   |  manifest:    3:ea49f93388380ead5601c8fcbfa187516e7c2ed8
   |  user:        tést èncödîng <test@example.org>
@@ -44,37 +44,40 @@
   |  extra:       branch=default
   |  extra:       committer=test <test@example.org> 1167609613 0
   |  extra:       encoding=latin-1
+  |  extra:       hg-git-rename-source=git
   |  description:
-  |  add déltà
+  |  add d\xc3\xa9lt\xc3\xa0 (esc)
   |
   |
-  o  changeset:   2:f8aa41895a3a771a72520ca205a4685b76649fdd
-  |  parent:      1:955b24cf6f8f293741d3f39110c6fe554c292533
-  |  parent:      -1:0000000000000000000000000000000000000000
+  o  changeset:   2:8bc4d64940260d4a1e70b54c099d3a76c83ff41e
+  |  parent:      1:f35a3100b78e57a0f5e4589a438f952a14b26ade
+  |  parent:      1:(9f6268bfc9eb3956c5ab8752d7b983b0ffe57115|955b24cf6f8f293741d3f39110c6fe554c292533) (re)
   |  manifest:    2:f580e7da3673c137370da2b931a1dee83590d7b4
-  |  user:        tést èncödîng <test@example.org>
+  |  user:        t\xc3\xa9st \xc3\xa8nc\xc3\xb6d\xc3\xaeng <test@example.org> (esc)
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  files+:      gamma
   |  extra:       branch=default
   |  extra:       committer=test <test@example.org> 1167609612 0
+  |  extra:       hg-git-rename-source=git
   |  description:
-  |  add gämmâ
+  |  add g\xc3\xa4mm\xc3\xa2 (esc)
   |
   |
-  o  changeset:   1:955b24cf6f8f293741d3f39110c6fe554c292533
-  |  parent:      0:bb7d36568d6188ce0de2392246c43f6f213df954
+  o  changeset:   1:f35a3100b78e57a0f5e4589a438f952a14b26ade
+  |  parent:      0:87cd29b67a9159eec3b5495b0496ef717b2769f5
   |  parent:      -1:0000000000000000000000000000000000000000
   |  manifest:    1:f0bd6fbafbaebe4bb59c35108428f6fce152431d
-  |  user:        tést èncödîng <test@example.org>
+  |  user:        t\xc3\xa9st \xc3\xa8nc\xc3\xb6d\xc3\xaeng <test@example.org> (esc)
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  files+:      beta
   |  extra:       branch=default
   |  extra:       committer=test <test@example.org> 1167609611 0
+  |  extra:       hg-git-rename-source=git
   |  description:
   |  add beta
   |
   |
-  o  changeset:   0:bb7d36568d6188ce0de2392246c43f6f213df954
+  o  changeset:   0:87cd29b67a9159eec3b5495b0496ef717b2769f5
      parent:      -1:0000000000000000000000000000000000000000
      parent:      -1:0000000000000000000000000000000000000000
      manifest:    0:8b8a0e87dfd7a0706c0524afa8ba67e20544cbf0
@@ -82,8 +85,9 @@
      date:        Mon Jan 01 00:00:10 2007 +0000
      files+:      alpha
      extra:       branch=default
+     extra:       hg-git-rename-source=git
      description:
-     add älphà
+     add \xc3\xa4lph\xc3\xa0 (esc)
   
   
 
--- a/tests/test-extra.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-extra.t	Tue Dec 02 14:17:09 2014 -0800
@@ -33,17 +33,17 @@
   $ hg add d
   $ fn_hg_commitextra --field zzzzzzz=datazzz --field aaaaaaa=dataaaa
   $ hg log --graph --template "{rev} {node} {desc|firstline}\n{join(extras, ' ')}\n\n"
-  @  3 f15e01c73845392d86a5ed10fb0753d09bca13d3
+  @  3 f01651cfcc9337fbd9700d5018ca637a2911ed28
   |  aaaaaaa=dataaaa branch=default zzzzzzz=datazzz
   |
-  o  2 dcec77c6ae3cff594c4435e5820bec4ec9e57440 b
-  |  branch=default rebase_source=bb8ddb1031b5d9afd7caa5aa9d24c735222e3636
+  o  2 03f4cf3c429050e2204fb2bda3a0f93329bdf4fd b
+  |  branch=default rebase_source=4c7da7adf18b785726a7421ef0d585bb5762990d
   |
-  o  1 003b36e9c3993ac4319eeebd5f77a1d5306ba706 c
+  o  1 a735dc0cd7cc0ccdbc16cfa4326b19c707c360f4 c
   |  branch=default
   |
-  o  0 ab83abcbf5717f738191aa2d42f52a7100ce06a8 a
-     branch=default
+  o  0 aa9eb6424386df2b0638fe6f480c3767fdd0e6fd a
+     branch=default hg-git-rename-source=git
   
 Make sure legacy extra (in commit message, after '--HG--') doesn't break
   $ hg push -r b1 --config git.debugextrainmessage=1
@@ -67,13 +67,13 @@
   warning: filename contains '>', which is reserved on Windows: 'c3 => c4'
   $ fn_hg_commit -m 'test filename with arrow 2'
   $ hg log --graph --template "{rev} {node} {desc|firstline}\n{join(extras, ' ')}\n\n" -l 3
-  @  6 f79e341d064ee29dce405f6e7345ae7241fb4d55 test filename with arrow 2
+  @  6 bca4ba69a6844c133b069e227dfa043d41e3c197 test filename with arrow 2
   |  branch=default
   |
-  o  5 fe50d8ec59bf76ee3f975635189d1b2fb88d13c7 test filename with arrow
+  o  5 864caad1f3493032f8d06f44a89dc9f1c039b09f test filename with arrow
   |  branch=default
   |
-  o  4 71a7f7cc00a30dde4a0d5da37f119e51ded1820a
+  o  4 58f855ae26f4930ce857e648d3dd949901cce817
   |  bbbbbbb=databbb branch=default yyyyyyy=datayyy
   |
   $ hg push -r b2 -r b3
@@ -87,7 +87,7 @@
   $ cd ../gitrepo
   $ git cat-file commit b1
   tree 1b773a2eb70f29397356f8069c285394835ff85a
-  parent 99316cce06b9b5aa9e5a3f4df124939583791dda
+  parent 202f271eb3dcb7b767ce2af6cdad4114df62ff3f
   author test <none@none> 1167609613 +0000
   committer test <none@none> 1167609613 +0000
   
@@ -99,7 +99,7 @@
 
   $ git cat-file commit b2
   tree 34ad62c6d6ad9464bfe62db5b3d2fa16aaa9fa9e
-  parent ca11864bb2a84c3996929d42cf38bae3d0f7aae0
+  parent 66fe706f6f4f08f0020323e6c49548d41bb00ff6
   author test <none@none> 1167609614 +0000
   committer test <none@none> 1167609614 +0000
   HG:rename c:c2
@@ -111,7 +111,7 @@
 
   $ git cat-file commit b3
   tree e63df52695f9b06e54b37e7ef60d0c43994de620
-  parent 74a6e4fb2ef9e2c23da1e2b7bdbd88c89ee9bac4
+  parent 6a66c937dea689a8bb2aa053bd91667fe4a7bfe8
   author test <none@none> 1167609616 +0000
   committer test <none@none> 1167609616 +0000
   HG:rename c2%20%3D%3E%20c3:c3%20%3D%3E%20c4
@@ -148,7 +148,7 @@
 
   $ git cat-file commit master
   tree 1b773a2eb70f29397356f8069c285394835ff85a
-  parent ca11864bb2a84c3996929d42cf38bae3d0f7aae0
+  parent 66fe706f6f4f08f0020323e6c49548d41bb00ff6
   author test <test@example.org> 0 +0000
   committer test <test@example.org> 0 +0000
   zzz:zzz data:zzz
@@ -162,27 +162,27 @@
   $ hg clone -q gitrepo hgrepo2
   $ cd hgrepo2
   $ hg log --graph --template "{rev} {node} {desc|firstline}\n{join(extras, ' ')}\n\n"
-  @  7 f79e341d064ee29dce405f6e7345ae7241fb4d55 test filename with arrow 2
+  @  7 e003ec989aaae23b3eb30d4423419fb4dc346089 test filename with arrow 2
   |  branch=default
   |
-  o  6 fe50d8ec59bf76ee3f975635189d1b2fb88d13c7 test filename with arrow
+  o  6 a2e276bd9458cb7dc309230ec8064d544e4f0c68 test filename with arrow
   |  branch=default
   |
-  o  5 71a7f7cc00a30dde4a0d5da37f119e51ded1820a
+  o  5 524e82e66b589f8b56bdd0679ad457a162ba16cd
   |  bbbbbbb=databbb branch=default yyyyyyy=datayyy
   |
-  | o  4 f5fddc070b0648a5cddb98b43bbd527e98f4b4d2 extra commit
+  | o  4 741081daa02c9023c8c5117771f59ef2308a575c extra commit
   |/   GIT0-zzz%3Azzz=data%3Azzz GIT1-aaa%3Aaaa=data%3Aaaa branch=default hgaaa=dataaaa hgzzz=datazzz
   |
-  o  3 f15e01c73845392d86a5ed10fb0753d09bca13d3
+  o  3 73fa4063c4b0f386fd6b59da693617dedb340b02
   |  aaaaaaa=dataaaa branch=default zzzzzzz=datazzz
   |
-  o  2 dcec77c6ae3cff594c4435e5820bec4ec9e57440 b
-  |  branch=default rebase_source=bb8ddb1031b5d9afd7caa5aa9d24c735222e3636
+  o  2 98337758089f6efd29f48bcaf00d14184ed0771b b
+  |  branch=default rebase_source=4c7da7adf18b785726a7421ef0d585bb5762990d
   |
-  o  1 003b36e9c3993ac4319eeebd5f77a1d5306ba706 c
-  |  branch=default
+  o  1 92a46c8588a7cd504c369259ef631b2c14ef4e91 c
+  |  branch=default hg-git-rename-source=git
   |
-  o  0 ab83abcbf5717f738191aa2d42f52a7100ce06a8 a
-     branch=default
+  o  0 aa9eb6424386df2b0638fe6f480c3767fdd0e6fd a
+     branch=default hg-git-rename-source=git
   
--- a/tests/test-file-removal.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-file-removal.t	Tue Dec 02 14:17:09 2014 -0800
@@ -33,29 +33,29 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd hgrepo
   $ hg log --graph | grep -v ': *master'
-  @  changeset:   4:ea41a3f0ed10
+  @  changeset:   4:0d3086c3f8c3
   |  tag:         default/master
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:14 2007 +0000
   |  summary:     remove foo/bar
   |
-  o  changeset:   3:c84537f94bcc
+  o  changeset:   3:b2406125ef5c
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:13 2007 +0000
   |  summary:     remove alpha
   |
-  o  changeset:   2:e25450e1354f
+  o  changeset:   2:8b3b2f4b4158
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     add foo
   |
-  o  changeset:   1:7bcd915dc873
+  o  changeset:   1:7fe02317c63d
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
--- a/tests/test-git-clone.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-git-clone.t	Tue Dec 02 14:17:09 2014 -0800
@@ -17,14 +17,14 @@
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo log --graph  | grep -v ': *master'
-  @  changeset:   1:7bcd915dc873
+  @  changeset:   1:7fe02317c63d
   |  tag:         default/master
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
@@ -32,6 +32,6 @@
 
 we should have some bookmarks
   $ hg -R hgrepo book
-   * master                    1:7bcd915dc873
+   * master                    1:7fe02317c63d
   $ hg -R hgrepo gverify
-  verifying rev 7bcd915dc873 against git commit 9497a4ee62e16ee641860d7677cdb2589ea15554
+  verifying rev 7fe02317c63d against git commit 9497a4ee62e16ee641860d7677cdb2589ea15554
--- a/tests/test-git-submodules.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-git-submodules.t	Tue Dec 02 14:17:09 2014 -0800
@@ -116,45 +116,45 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd hgrepo
   $ hg log --graph  | grep -v ': *master'
-  @  changeset:   6:827c0345b7d1
+  @  changeset:   6:b52cbe4c3ffe
   |  tag:         default/master
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     remove all subrepos
   |
-  o  changeset:   5:97f89374a0ce
+  o  changeset:   5:87bae50d72cb
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     replace file with subrepo
   |
-  o  changeset:   4:e233b0858578
+  o  changeset:   4:33729ae46d57
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     replace subrepo with file
   |
-  o  changeset:   3:6264517ddb98
+  o  changeset:   3:4d2f0f4fb53d
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     add another subrepo
   |
-  o  changeset:   2:914937cccdbe
+  o  changeset:   2:620c9d5e9a98
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     change subrepo commit
   |
-  o  changeset:   1:2f69b1b8a6f8
+  o  changeset:   1:f20b40ad6da1
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add subrepo
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
   $ hg book
-   * master                    6:827c0345b7d1
+   * master                    6:b52cbe4c3ffe
 
 (add subrepo)
   $ hg cat -r 1 .hgsubstate
@@ -162,7 +162,7 @@
   $ hg cat -r 1 .hgsub
   subrepo = [git]../gitsubrepo
   $ hg gverify -r 1
-  verifying rev 2f69b1b8a6f8 against git commit e42b08b3cb7069b4594a4ee1d9cb641ee47b2355
+  verifying rev f20b40ad6da1 against git commit e42b08b3cb7069b4594a4ee1d9cb641ee47b2355
 
 (change subrepo commit)
   $ hg cat -r 2 .hgsubstate
@@ -170,7 +170,7 @@
   $ hg cat -r 2 .hgsub
   subrepo = [git]../gitsubrepo
   $ hg gverify -r 2
-  verifying rev 914937cccdbe against git commit a000567ceefbd9a2ce364e0dea6e298010b02b6d
+  verifying rev 620c9d5e9a98 against git commit a000567ceefbd9a2ce364e0dea6e298010b02b6d
 
 (add another subrepo)
   $ hg cat -r 3 .hgsubstate
@@ -180,7 +180,7 @@
   subrepo = [git]../gitsubrepo
   subrepo2 = [git]../gitsubrepo
   $ hg gverify -r 3
-  verifying rev 6264517ddb98 against git commit 6e219527869fa40eb6ffbdd013cd86d576b26b01
+  verifying rev 4d2f0f4fb53d against git commit 6e219527869fa40eb6ffbdd013cd86d576b26b01
 
 (replace subrepo with file)
   $ hg cat -r 4 .hgsubstate
@@ -194,7 +194,7 @@
   alpha
   subrepo
   $ hg gverify -r 4
-  verifying rev e233b0858578 against git commit f6436a472da00f581d8d257e9bbaf3c358a5e88c
+  verifying rev 33729ae46d57 against git commit f6436a472da00f581d8d257e9bbaf3c358a5e88c
 
 (replace file with subrepo)
   $ hg cat -r 5 .hgsubstate
@@ -209,15 +209,15 @@
   .hgsubstate
   subrepo
   $ hg gverify -r 5
-  verifying rev 97f89374a0ce against git commit 88171163bf4795b5570924e51d5f8ede33f8bc28
+  verifying rev 87bae50d72cb against git commit 88171163bf4795b5570924e51d5f8ede33f8bc28
 
 (remove all subrepos)
   $ hg cat -r 6 .hgsub .hgsubstate
-  .hgsub: no such file in rev 827c0345b7d1
-  .hgsubstate: no such file in rev 827c0345b7d1
+  .hgsub: no such file in rev b52cbe4c3ffe
+  .hgsubstate: no such file in rev b52cbe4c3ffe
   [1]
   $ hg gverify -r 6
-  verifying rev 827c0345b7d1 against git commit d3c472800f9d11baa6615971a3179fd441869173
+  verifying rev b52cbe4c3ffe against git commit d3c472800f9d11baa6615971a3179fd441869173
 
   $ hg gclear
   clearing out the git cache data
--- a/tests/test-git-tags.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-git-tags.t	Tue Dec 02 14:17:09 2014 -0800
@@ -22,7 +22,7 @@
 
   $ cd hgrepo
   $ hg log --graph  | grep -v ': *master'
-  @  changeset:   1:99dcc15b7b07
+  @  changeset:   1:5403d6137622
   |  tag:         beta
   |  tag:         default/master
   |  tag:         tip
@@ -30,7 +30,7 @@
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
--- a/tests/test-git-workflow.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-git-workflow.t	Tue Dec 02 14:17:09 2014 -0800
@@ -47,7 +47,7 @@
   $ hg gimport
   importing git objects into hg
   $ hg log --graph --debug | grep -v ': *master' | grep -v phase:
-  o  changeset:   1:7108ae7bd184226a29b8203619a8253d314643bf
+  o  changeset:   1:9f124f3c1fc29a14f5eb027c24811b0ac9d5ff10
   |  tag:         tip
   |  parent:      0:0221c246a56712c6aa64e5ee382244d8a471b1e2
   |  parent:      -1:0000000000000000000000000000000000000000
@@ -56,6 +56,7 @@
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  files+:      beta
   |  extra:       branch=default
+  |  extra:       hg-git-rename-source=git
   |  description:
   |  add beta
   |
@@ -74,7 +75,7 @@
   
 gimport should have updated the bookmarks as well
   $ hg bookmarks
-     master                    1:7108ae7bd184
+     master                    1:9f124f3c1fc2
 
 gimport support for git.mindate
   $ cat >> .hg/hgrc << EOF
@@ -89,7 +90,7 @@
   $ hg gimport
   no changes found
   $ hg log --graph
-  o  changeset:   1:7108ae7bd184
+  o  changeset:   1:9f124f3c1fc2
   |  bookmark:    master
   |  tag:         tip
   |  user:        test <test@example.org>
@@ -110,19 +111,19 @@
   $ hg gimport
   importing git objects into hg
   $ hg log --graph
-  o  changeset:   3:865f98279824
+  o  changeset:   3:3d10b7289d79
   |  bookmark:    master
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Wed Jan 01 00:00:00 2014 +0000
   |  summary:     newcommit
   |
-  o  changeset:   2:b6cde64c110c
+  o  changeset:   2:befdecd14df5
   |  user:        test <test@example.org>
   |  date:        Sat Mar 01 00:00:00 2014 +0000
   |  summary:     oldcommit
   |
-  o  changeset:   1:7108ae7bd184
+  o  changeset:   1:9f124f3c1fc2
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
--- a/tests/test-hg-author.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-hg-author.t	Tue Dec 02 14:17:09 2014 -0800
@@ -98,49 +98,49 @@
   updating reference refs/heads/master
 
   $ hg log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   8:d3c51ce68cfd
+  @  changeset:   8:c5d1976ab12c
   |  tag:         default/master
   |  tag:         tip
   |  user:        test >test@example.com>
   |  date:        Mon Jan 01 00:00:18 2007 +0000
   |  summary:     add theta
   |
-  o  changeset:   7:b90e988091a2
+  o  changeset:   7:0e2fb4d21667
   |  user:        test < test@example.com >
   |  date:        Mon Jan 01 00:00:17 2007 +0000
   |  summary:     add eta
   |
-  o  changeset:   6:7ede2f971cae
+  o  changeset:   6:faa3aae96199
   |  user:        test
   |  date:        Mon Jan 01 00:00:16 2007 +0000
   |  summary:     add zeta
   |
-  o  changeset:   5:1454a94056ec
+  o  changeset:   5:2cf6ad5a1afc
   |  user:        name <test@example.com
   |  date:        Mon Jan 01 00:00:15 2007 +0000
   |  summary:     add epsilon
   |
-  o  changeset:   4:a045fd599678
+  o  changeset:   4:3131b2a71396
   |  user:        name<test@example.com>
   |  date:        Mon Jan 01 00:00:14 2007 +0000
   |  summary:     add delta
   |
-  o  changeset:   3:8da3ab8b31d0
+  o  changeset:   3:6b854d65d0d6
   |  user:        <test@example.com>
   |  date:        Mon Jan 01 00:00:13 2007 +0000
   |  summary:     add gamma
   |
-  o  changeset:   2:92d33c0dd6e1
+  o  changeset:   2:46303c652e79
   |  user:        test <test@example.com> (comment)
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     modify beta
   |
-  o  changeset:   1:0564f526fb0f
+  o  changeset:   1:47580592d3d6
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         default/not-master
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
@@ -152,98 +152,98 @@
   importing git objects into hg
   8 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   8:efec0270e295
+  @  changeset:   8:1fbf3aa91221
   |  tag:         default/master
   |  tag:         tip
   |  user:        test ?test@example.com <test ?test@example.com>
   |  date:        Mon Jan 01 00:00:18 2007 +0000
   |  summary:     add theta
   |
-  o  changeset:   7:8ab87d5066e4
+  o  changeset:   7:20310508f06d
   |  user:        test <test@example.com>
   |  date:        Mon Jan 01 00:00:17 2007 +0000
   |  summary:     add eta
   |
-  o  changeset:   6:ff226cc916bd
+  o  changeset:   6:e3d81af8a8c1
   |  user:        test
   |  date:        Mon Jan 01 00:00:16 2007 +0000
   |  summary:     add zeta
   |
-  o  changeset:   5:5f1557c62c53
+  o  changeset:   5:78f609fd208f
   |  user:        name <test@example.com>
   |  date:        Mon Jan 01 00:00:15 2007 +0000
   |  summary:     add epsilon
   |
-  o  changeset:   4:fc51727b28fe
+  o  changeset:   4:42fa61d57718
   |  user:        name <test@example.com>
   |  date:        Mon Jan 01 00:00:14 2007 +0000
   |  summary:     add delta
   |
-  o  changeset:   3:8da3ab8b31d0
+  o  changeset:   3:6b854d65d0d6
   |  user:        <test@example.com>
   |  date:        Mon Jan 01 00:00:13 2007 +0000
   |  summary:     add gamma
   |
-  o  changeset:   2:92d33c0dd6e1
+  o  changeset:   2:46303c652e79
   |  user:        test <test@example.com> (comment)
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     modify beta
   |
-  o  changeset:   1:0564f526fb0f
+  o  changeset:   1:47580592d3d6
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         default/not-master
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
      summary:     add alpha
   
   $ git --git-dir=gitrepo/.git log --pretty=medium master
-  commit 1e03e913eca571b86ee06d3c1ddd795dde9ca917
+  commit 2fe60ba69727981e6ede78be70354c3a9e30e21d
   Author: test ?test@example.com <test ?test@example.com>
   Date:   Mon Jan 1 00:00:18 2007 +0000
   
       add theta
   
-  commit 8c878c9764e96e67ed9f62b3f317d156bf71bc52
+  commit 9f2f7cafdbf2e467928db98de8275141001d3081
   Author: test <test@example.com>
   Date:   Mon Jan 1 00:00:17 2007 +0000
   
       add eta
   
-  commit d21e26b48c6136340dd1212bb45ba0e9debb130c
+  commit 172a6f8d8064d73dff7013e395a9fe3cfc3ff807
   Author: test <none@none>
   Date:   Mon Jan 1 00:00:16 2007 +0000
   
       add zeta
   
-  commit ee985f124d2f13ee8ad2a346a6d1b0ada8b0d491
+  commit 71badb8e343a7da391a9b5d98909fbd2ca7d78f2
   Author: name <test@example.com>
   Date:   Mon Jan 1 00:00:15 2007 +0000
   
       add epsilon
   
-  commit d16592507ac83a6a633b90ca255f65e5d024f0bc
+  commit 9a9ae7b7f310d4a1a3e732a747ca26f06934f8d8
   Author: name <test@example.com>
   Date:   Mon Jan 1 00:00:14 2007 +0000
   
       add delta
   
-  commit fee30180efc4943fb916de04fcf6a64b638d9325
+  commit e4149a32e81e380193f59aa8773349201b8ed7f7
   Author:  <test@example.com>
   Date:   Mon Jan 1 00:00:13 2007 +0000
   
       add gamma
   
-  commit 2b9ec6a47b93191986a79eeb771e461c4508c7c4
+  commit fae95aef5889a80103c2fbd5d14ff6eb8c9daf93
   Author: test ext:(%20%28comment%29) <test@example.com>
   Date:   Mon Jan 1 00:00:12 2007 +0000
   
       modify beta
   
-  commit cffa0e8d8ad5f284c69c898c0f3c1e32d078af8a
+  commit 0f378ab6c2c6b5514bd873d3faf8ac4b8095b001
   Author: test <none@none>
   Date:   Mon Jan 1 00:00:11 2007 +0000
   
--- a/tests/test-hg-branch.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-hg-branch.t	Tue Dec 02 14:17:09 2014 -0800
@@ -38,7 +38,7 @@
   updating reference refs/heads/master
 
   $ hg log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   2:05aed681ccb3
+  @  changeset:   2:400db38f4f64
   |  branch:      gamma
   |  tag:         default/master
   |  tag:         tip
@@ -46,12 +46,12 @@
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     started branch gamma
   |
-  o  changeset:   1:a31e374801c9
+  o  changeset:   1:3baa67317a4d
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     rename alpha to beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         default/not-master
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
@@ -63,7 +63,7 @@
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
-  o  changeset:   2:05aed681ccb3
+  o  changeset:   2:400db38f4f64
   |  branch:      gamma
   |  tag:         default/master
   |  tag:         tip
@@ -71,12 +71,12 @@
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     started branch gamma
   |
-  @  changeset:   1:a31e374801c9
+  @  changeset:   1:3baa67317a4d
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     rename alpha to beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         default/not-master
      user:        test <test@example.org>
      date:        Mon Jan 01 00:00:10 2007 +0000
--- a/tests/test-hg-tags-invalid.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-hg-tags-invalid.t	Tue Dec 02 14:17:09 2014 -0800
@@ -32,26 +32,26 @@
   adding reference refs/tags/gamm_a
 
   $ hg log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   3:33a29389ddad
+  @  changeset:   3:0950ab44ea23
   |  tag:         default/master
   |  tag:         tip
   |  user:        test
   |  date:        Mon Jan 01 00:00:13 2007 +0000
-  |  summary:     Added tag gamm a for changeset e72bdd9ef5c0
+  |  summary:     Added tag gamm a for changeset 0b27ab2b3df6
   |
-  o  changeset:   2:e72bdd9ef5c0
+  o  changeset:   2:0b27ab2b3df6
   |  tag:         gamm a
   |  user:        test
   |  date:        Mon Jan 01 00:00:12 2007 +0000
-  |  summary:     Added tag bet*a for changeset 432ce25d86bc
+  |  summary:     Added tag bet*a for changeset 491ceeb1b0f1
   |
-  o  changeset:   1:432ce25d86bc
+  o  changeset:   1:491ceeb1b0f1
   |  tag:         bet*a
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
-  |  summary:     Added tag alph#a for changeset 3442585be8a6
+  |  summary:     Added tag alph#a for changeset ff7a2f2d8d70
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alph#a
      tag:         default/not-master
      user:        test <test@example.org>
@@ -71,27 +71,27 @@
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   3:33a29389ddad
+  @  changeset:   3:0950ab44ea23
   |  tag:         default/master
   |  tag:         tip
   |  user:        test
   |  date:        Mon Jan 01 00:00:13 2007 +0000
-  |  summary:     Added tag gamm a for changeset e72bdd9ef5c0
+  |  summary:     Added tag gamm a for changeset 0b27ab2b3df6
   |
-  o  changeset:   2:e72bdd9ef5c0
+  o  changeset:   2:0b27ab2b3df6
   |  tag:         gamm a
   |  tag:         gamm_a
   |  user:        test
   |  date:        Mon Jan 01 00:00:12 2007 +0000
-  |  summary:     Added tag bet*a for changeset 432ce25d86bc
+  |  summary:     Added tag bet*a for changeset 491ceeb1b0f1
   |
-  o  changeset:   1:432ce25d86bc
+  o  changeset:   1:491ceeb1b0f1
   |  tag:         bet*a
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
-  |  summary:     Added tag alph#a for changeset 3442585be8a6
+  |  summary:     Added tag alph#a for changeset ff7a2f2d8d70
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alph#a
      tag:         default/not-master
      user:        test <test@example.org>
@@ -101,6 +101,6 @@
 
 the tag should be in .hgtags
   $ cat hgrepo2/.hgtags
-  3442585be8a60c6cd476bbc4e45755339f2a23ef alph#a
-  432ce25d86bc4281747aa42e27b473b992e2b0b9 bet*a
-  e72bdd9ef5c0d6c50022480ee74cd9e48ae74e19 gamm a
+  ff7a2f2d8d7099694ae1e8b03838d40575bebb63 alph#a
+  491ceeb1b0f10d65d956dfcdd3470ac2bc2c96a8 bet*a
+  0b27ab2b3df69c6f7defd7040b93e539136db5be gamm a
--- a/tests/test-hg-tags.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-hg-tags.t	Tue Dec 02 14:17:09 2014 -0800
@@ -28,14 +28,14 @@
   adding reference refs/tags/alpha
 
   $ hg log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   1:d529e9229f6d
+  @  changeset:   1:e8b150f84560
   |  tag:         default/master
   |  tag:         tip
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
-  |  summary:     Added tag alpha for changeset 3442585be8a6
+  |  summary:     Added tag alpha for changeset ff7a2f2d8d70
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/not-master
      user:        test <test@example.org>
@@ -54,14 +54,14 @@
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo2 log --graph | egrep -v ': *(not-master|master)'
-  @  changeset:   1:d529e9229f6d
+  @  changeset:   1:e8b150f84560
   |  tag:         default/master
   |  tag:         tip
   |  user:        test
   |  date:        Mon Jan 01 00:00:11 2007 +0000
-  |  summary:     Added tag alpha for changeset 3442585be8a6
+  |  summary:     Added tag alpha for changeset ff7a2f2d8d70
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/not-master
      user:        test <test@example.org>
@@ -71,4 +71,4 @@
 
 the tag should be in .hgtags
   $ cat hgrepo2/.hgtags
-  3442585be8a60c6cd476bbc4e45755339f2a23ef alpha
+  ff7a2f2d8d7099694ae1e8b03838d40575bebb63 alpha
--- a/tests/test-incoming.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-incoming.t	Tue Dec 02 14:17:09 2014 -0800
@@ -59,7 +59,7 @@
   date:        Mon Jan 01 00:00:11 2007 +0000
   summary:     add beta
   
-  diff -r 3442585be8a6 -r 9497a4ee62e1 beta
+  diff -r ff7a2f2d8d70 -r 9497a4ee62e1 beta
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/beta	Mon Jan 01 00:00:11 2007 +0000
   @@ -0,0 +1,1 @@
@@ -67,12 +67,12 @@
   
   changeset:   2:9865e289be73
   tag:         t1
-  parent:      0:3442585be8a6
+  parent:      0:ff7a2f2d8d70
   user:        test <test@example.org>
   date:        Mon Jan 01 00:00:12 2007 +0000
   summary:     add d/gamma
   
-  diff -r 3442585be8a6 -r 9865e289be73 d/gamma
+  diff -r ff7a2f2d8d70 -r 9865e289be73 d/gamma
   --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   +++ b/d/gamma	Mon Jan 01 00:00:12 2007 +0000
   @@ -0,0 +1,1 @@
--- a/tests/test-keywords.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-keywords.t	Tue Dec 02 14:17:09 2014 -0800
@@ -22,9 +22,9 @@
   $ hg commit -m 'add gamma'
 
   $ hg log --template "{rev} {node} {node|short} {gitnode} {gitnode|short}\n"
-  2 a9da0c7c9bb7574b0f3139ab65cabac7468d6b8d a9da0c7c9bb7  
-  1 7bcd915dc873c654b822f01b0a39269b2739e86d 7bcd915dc873 9497a4ee62e16ee641860d7677cdb2589ea15554 9497a4ee62e1
-  0 3442585be8a60c6cd476bbc4e45755339f2a23ef 3442585be8a6 7eeab2ea75ec1ac0ff3d500b5b6f8a3447dd7c03 7eeab2ea75ec
+  2 168eb1ee8b3c04e6723c9330327b0eec1e36577f 168eb1ee8b3c  
+  1 7fe02317c63d9ee324d4b5df7c9296085162da1b 7fe02317c63d 9497a4ee62e16ee641860d7677cdb2589ea15554 9497a4ee62e1
+  0 ff7a2f2d8d7099694ae1e8b03838d40575bebb63 ff7a2f2d8d70 7eeab2ea75ec1ac0ff3d500b5b6f8a3447dd7c03 7eeab2ea75ec
   $ hg log --template "fromgit {rev}\n" --rev "fromgit()"
   fromgit 0
   fromgit 1
--- a/tests/test-octopus.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-octopus.t	Tue Dec 02 14:17:09 2014 -0800
@@ -67,40 +67,40 @@
   6 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd hgrepo
   $ hg log --graph --style compact | sed 's/\[.*\]//g'
-  @    9:7,8   9c1d2aac0643   2007-01-01 00:00 +0000   test
+  @    9:7,8   307506d6ae8a   2007-01-01 00:00 +0000   test
   |\     Merge branches 'branch3' and 'branch4'
   | |
-  | o    8:3,4   c5ea839ce0aa   2007-01-01 00:00 +0000   test
+  | o    8:3,4   2b07220e422e   2007-01-01 00:00 +0000   test
   | |\     Merge branches 'branch3' and 'branch4'
   | | |
-  o | |    7:5,6   fb41ad5568ee   2007-01-01 00:00 +0000   test
+  o | |    7:5,6   ccf2d65d982c   2007-01-01 00:00 +0000   test
   |\ \ \     Merge branches 'branch1' and 'branch2'
   | | | |
-  | o | |    6:1,2   2bd73a80b472   2007-01-01 00:00 +0000   test
+  | o | |    6:1,2   690b40256117   2007-01-01 00:00 +0000   test
   | |\ \ \     Merge branches 'branch1' and 'branch2'
   | | | | |
-  o | | | |  5:0   71cbde26f242   2007-01-01 00:00 +0000   test
+  o | | | |  5:0   e459c0629ca4   2007-01-01 00:00 +0000   test
   | | | | |    add delta
   | | | | |
-  +-------o  4:0   fdf749fb5963   2007-01-01 00:00 +0000   test
+  +-------o  4:0   e857c9a04474   2007-01-01 00:00 +0000   test
   | | | |      add zeta
   | | | |
-  +-----o  3:0   19e973b01564   2007-01-01 00:00 +0000   test
+  +-----o  3:0   0071dec0de0e   2007-01-01 00:00 +0000   test
   | | |      add epsilon
   | | |
-  +---o  2:0   37c124f2d0a0   2007-01-01 00:00 +0000   test
+  +---o  2:0   205a004356ef   2007-01-01 00:00 +0000   test
   | |      add gamma
   | |
-  | o  1   7bcd915dc873   2007-01-01 00:00 +0000   test
+  | o  1   7fe02317c63d   2007-01-01 00:00 +0000   test
   |/     add beta
   |
-  o  0   3442585be8a6   2007-01-01 00:00 +0000   test
+  o  0   ff7a2f2d8d70   2007-01-01 00:00 +0000   test
        add alpha
   
   $ hg gverify -r 9
-  verifying rev 9c1d2aac0643 against git commit b32ff845df61df998206b630e4370a44f9b36845
+  verifying rev 307506d6ae8a against git commit b32ff845df61df998206b630e4370a44f9b36845
   $ hg gverify -r 8
-  abort: no git commit found for rev c5ea839ce0aa
+  abort: no git commit found for rev 2b07220e422e
   (if this is an octopus merge, verify against the last rev)
   [255]
 
--- a/tests/test-outgoing.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-outgoing.t	Tue Dec 02 14:17:09 2014 -0800
@@ -32,13 +32,13 @@
 
   $ hg outgoing | sed 's/bookmark:    /tag:         /' | grep -v 'searching for changes'
   comparing with */gitrepo (glob)
-  changeset:   1:0564f526fb0f
+  changeset:   1:47580592d3d6
   tag:         beta
   user:        test
   date:        Mon Jan 01 00:00:11 2007 +0000
   summary:     add beta
   
-  changeset:   2:72f56395749d
+  changeset:   2:953796e1cfd8
   tag:         master
   tag:         tip
   user:        test
@@ -47,7 +47,7 @@
   
   $ hg outgoing -r beta | sed 's/bookmark:    /tag:         /' | grep -v 'searching for changes'
   comparing with */gitrepo (glob)
-  changeset:   1:0564f526fb0f
+  changeset:   1:47580592d3d6
   tag:         beta
   user:        test
   date:        Mon Jan 01 00:00:11 2007 +0000
@@ -55,13 +55,13 @@
   
   $ hg outgoing -r master | sed 's/bookmark:    /tag:         /' | grep -v 'searching for changes'
   comparing with */gitrepo (glob)
-  changeset:   1:0564f526fb0f
+  changeset:   1:47580592d3d6
   tag:         beta
   user:        test
   date:        Mon Jan 01 00:00:11 2007 +0000
   summary:     add beta
   
-  changeset:   2:72f56395749d
+  changeset:   2:953796e1cfd8
   tag:         master
   tag:         tip
   user:        test
@@ -100,13 +100,13 @@
   (run 'hg heads' to see heads, 'hg merge' to merge)
   $ hg outgoing | sed 's/bookmark:    /tag:         /' | grep -v 'searching for changes'
   comparing with */gitrepo (glob)
-  changeset:   1:0564f526fb0f
+  changeset:   1:47580592d3d6
   tag:         beta
   user:        test
   date:        Mon Jan 01 00:00:11 2007 +0000
   summary:     add beta
   
-  changeset:   2:72f56395749d
+  changeset:   2:953796e1cfd8
   tag:         master
   user:        test
   date:        Mon Jan 01 00:00:12 2007 +0000
@@ -114,7 +114,7 @@
   
   $ hg outgoing -r beta | sed 's/bookmark:    /tag:         /' | grep -v 'searching for changes'
   comparing with */gitrepo (glob)
-  changeset:   1:0564f526fb0f
+  changeset:   1:47580592d3d6
   tag:         beta
   user:        test
   date:        Mon Jan 01 00:00:11 2007 +0000
@@ -122,13 +122,13 @@
   
   $ hg outgoing -r master | sed 's/bookmark:    /tag:         /' | grep -v 'searching for changes'
   comparing with */gitrepo (glob)
-  changeset:   1:0564f526fb0f
+  changeset:   1:47580592d3d6
   tag:         beta
   user:        test
   date:        Mon Jan 01 00:00:11 2007 +0000
   summary:     add beta
   
-  changeset:   2:72f56395749d
+  changeset:   2:953796e1cfd8
   tag:         master
   user:        test
   date:        Mon Jan 01 00:00:12 2007 +0000
--- a/tests/test-pull-after-strip.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-pull-after-strip.t	Tue Dec 02 14:17:09 2014 -0800
@@ -23,7 +23,7 @@
   importing git objects into hg
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo-a log --graph | egrep -v ': *(beta|master)'
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/master
      tag:         tip
@@ -36,14 +36,14 @@
   importing git objects into hg
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo-b log --graph | egrep -v ': *(beta|master)'
-  @  changeset:   1:7bcd915dc873
+  @  changeset:   1:7fe02317c63d
   |  tag:         default/beta
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  o  changeset:   0:3442585be8a6
+  o  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/master
      user:        test <test@example.org>
@@ -73,19 +73,19 @@
   importing git objects into hg
   (run 'hg update' to get a working copy)
   $ hg log --graph | egrep -v 'bookmark: *(alpha|beta|master)'
-  o  changeset:   2:611948b1ec6a
+  o  changeset:   2:cc1e605d90db
   |  tag:         default/beta
   |  tag:         tip
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:12 2007 +0000
   |  summary:     add to beta
   |
-  o  changeset:   1:7bcd915dc873
+  o  changeset:   1:7fe02317c63d
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      tag:         alpha
      tag:         default/master
      user:        test <test@example.org>
--- a/tests/test-pull.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-pull.t	Tue Dec 02 14:17:09 2014 -0800
@@ -29,7 +29,7 @@
   $ hg -R hgrepo update t_alpha
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo log --graph
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      bookmark:    master
      tag:         default/master
      tag:         t_alpha
@@ -57,7 +57,7 @@
   importing git objects into hg
   (run 'hg update' to get a working copy)
   $ hg -R hgrepo log --graph
-  o  changeset:   1:7bcd915dc873
+  o  changeset:   1:7fe02317c63d
   |  bookmark:    beta
   |  tag:         default/beta
   |  tag:         tip
@@ -65,7 +65,7 @@
   |  date:        Mon Jan 01 00:00:11 2007 +0000
   |  summary:     add beta
   |
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      bookmark:    epsilon
      bookmark:    master
      tag:         default/epsilon
@@ -91,24 +91,24 @@
   importing git objects into hg
   (run 'hg heads' to see heads, 'hg merge' to merge)
   $ hg -R hgrepo log --graph
-  o  changeset:   3:56cabe48c4b0
+  o  changeset:   3:6f898ad1f3e1
   |  bookmark:    master
   |  tag:         default/master
   |  tag:         tip
-  |  parent:      0:3442585be8a6
+  |  parent:      0:ff7a2f2d8d70
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:13 2007 +0000
   |  summary:     add gamma
   |
-  | o  changeset:   2:4d41070bf840
+  | o  changeset:   2:678ebee93e38
   |/   bookmark:    delta
   |    tag:         default/delta
-  |    parent:      0:3442585be8a6
+  |    parent:      0:ff7a2f2d8d70
   |    user:        test <test@example.org>
   |    date:        Mon Jan 01 00:00:12 2007 +0000
   |    summary:     add delta
   |
-  | o  changeset:   1:7bcd915dc873
+  | o  changeset:   1:7fe02317c63d
   |/   bookmark:    beta
   |    tag:         default/beta
   |    tag:         t_beta
@@ -116,7 +116,7 @@
   |    date:        Mon Jan 01 00:00:11 2007 +0000
   |    summary:     add beta
   |
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      bookmark:    epsilon
      tag:         default/epsilon
      tag:         t_alpha
@@ -139,31 +139,31 @@
   importing git objects into hg
   (run 'hg update' to get a working copy)
   $ hg -R hgrepo log --graph
-  o    changeset:   4:892d20308ddf
+  o    changeset:   4:a02330f767a4
   |\   bookmark:    master
   | |  tag:         default/master
   | |  tag:         tip
-  | |  parent:      3:56cabe48c4b0
-  | |  parent:      1:7bcd915dc873
+  | |  parent:      3:6f898ad1f3e1
+  | |  parent:      1:7fe02317c63d
   | |  user:        test <test@example.org>
   | |  date:        Mon Jan 01 00:00:13 2007 +0000
   | |  summary:     Merge branch 'beta'
   | |
-  | o  changeset:   3:56cabe48c4b0
-  | |  parent:      0:3442585be8a6
+  | o  changeset:   3:6f898ad1f3e1
+  | |  parent:      0:ff7a2f2d8d70
   | |  user:        test <test@example.org>
   | |  date:        Mon Jan 01 00:00:13 2007 +0000
   | |  summary:     add gamma
   | |
-  | | o  changeset:   2:4d41070bf840
+  | | o  changeset:   2:678ebee93e38
   | |/   bookmark:    delta
   | |    tag:         default/delta
-  | |    parent:      0:3442585be8a6
+  | |    parent:      0:ff7a2f2d8d70
   | |    user:        test <test@example.org>
   | |    date:        Mon Jan 01 00:00:12 2007 +0000
   | |    summary:     add delta
   | |
-  o |  changeset:   1:7bcd915dc873
+  o |  changeset:   1:7fe02317c63d
   |/   bookmark:    beta
   |    tag:         default/beta
   |    tag:         t_beta
@@ -171,7 +171,7 @@
   |    date:        Mon Jan 01 00:00:11 2007 +0000
   |    summary:     add beta
   |
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      bookmark:    epsilon
      tag:         default/epsilon
      tag:         t_alpha
@@ -201,46 +201,46 @@
   importing git objects into hg
   (run 'hg heads .' to see heads, 'hg merge' to merge)
   $ hg -R hgrepo log --graph
-  o  changeset:   6:bdc34645137e
+  o  changeset:   6:a3f95e150b0a
   |  bookmark:    releases/v2
   |  tag:         default/releases/v2
   |  tag:         tip
-  |  parent:      4:892d20308ddf
+  |  parent:      4:a02330f767a4
   |  user:        test <test@example.org>
   |  date:        Mon Jan 01 00:00:15 2007 +0000
   |  summary:     add eta
   |
-  | o  changeset:   5:3e35a45c61f9
+  | o  changeset:   5:218b2d0660d3
   |/   bookmark:    releases/v1
   |    tag:         default/releases/v1
   |    user:        test <test@example.org>
   |    date:        Mon Jan 01 00:00:14 2007 +0000
   |    summary:     add zeta
   |
-  o    changeset:   4:892d20308ddf
+  o    changeset:   4:a02330f767a4
   |\   bookmark:    master
   | |  tag:         default/master
-  | |  parent:      3:56cabe48c4b0
-  | |  parent:      1:7bcd915dc873
+  | |  parent:      3:6f898ad1f3e1
+  | |  parent:      1:7fe02317c63d
   | |  user:        test <test@example.org>
   | |  date:        Mon Jan 01 00:00:13 2007 +0000
   | |  summary:     Merge branch 'beta'
   | |
-  | o  changeset:   3:56cabe48c4b0
-  | |  parent:      0:3442585be8a6
+  | o  changeset:   3:6f898ad1f3e1
+  | |  parent:      0:ff7a2f2d8d70
   | |  user:        test <test@example.org>
   | |  date:        Mon Jan 01 00:00:13 2007 +0000
   | |  summary:     add gamma
   | |
-  | | o  changeset:   2:4d41070bf840
+  | | o  changeset:   2:678ebee93e38
   | |/   bookmark:    delta
   | |    tag:         default/delta
-  | |    parent:      0:3442585be8a6
+  | |    parent:      0:ff7a2f2d8d70
   | |    user:        test <test@example.org>
   | |    date:        Mon Jan 01 00:00:12 2007 +0000
   | |    summary:     add delta
   | |
-  o |  changeset:   1:7bcd915dc873
+  o |  changeset:   1:7fe02317c63d
   |/   bookmark:    beta
   |    tag:         default/beta
   |    tag:         t_beta
@@ -248,7 +248,7 @@
   |    date:        Mon Jan 01 00:00:11 2007 +0000
   |    summary:     add beta
   |
-  @  changeset:   0:3442585be8a6
+  @  changeset:   0:ff7a2f2d8d70
      bookmark:    epsilon
      tag:         default/epsilon
      tag:         t_alpha
@@ -284,10 +284,10 @@
   pulling from $TESTTMP/gitrepo
   no changes found
   $ hg -R hgrepo log -r master
-  changeset:   4:892d20308ddf
+  changeset:   4:a02330f767a4
   bookmark:    master
-  parent:      3:56cabe48c4b0
-  parent:      1:7bcd915dc873
+  parent:      3:6f898ad1f3e1
+  parent:      1:7fe02317c63d
   user:        test <test@example.org>
   date:        Mon Jan 01 00:00:13 2007 +0000
   summary:     Merge branch 'beta'
@@ -309,7 +309,7 @@
   importing git objects into hg
   (run 'hg heads .' to see heads, 'hg merge' to merge)
   $ hg -R hgrepo heads
-  changeset:   9:c7d0cf1a7601
+  changeset:   9:e103a73f33be
   bookmark:    master
   tag:         default/master
   tag:         tip
@@ -317,33 +317,33 @@
   date:        Wed Jan 01 00:00:00 2014 +0000
   summary:     newcommit
   
-  changeset:   7:d416c428c92d
+  changeset:   7:49713da8f665
   tag:         newtag
   tag:         oldtag
-  parent:      4:892d20308ddf
+  parent:      4:a02330f767a4
   user:        test <test@example.org>
   date:        Sat Mar 01 00:00:00 2014 +0000
   summary:     oldtag
   
-  changeset:   6:bdc34645137e
+  changeset:   6:a3f95e150b0a
   bookmark:    releases/v2
   tag:         default/releases/v2
-  parent:      4:892d20308ddf
+  parent:      4:a02330f767a4
   user:        test <test@example.org>
   date:        Mon Jan 01 00:00:15 2007 +0000
   summary:     add eta
   
-  changeset:   5:3e35a45c61f9
+  changeset:   5:218b2d0660d3
   bookmark:    releases/v1
   tag:         default/releases/v1
   user:        test <test@example.org>
   date:        Mon Jan 01 00:00:14 2007 +0000
   summary:     add zeta
   
-  changeset:   2:4d41070bf840
+  changeset:   2:678ebee93e38
   bookmark:    delta
   tag:         default/delta
-  parent:      0:3442585be8a6
+  parent:      0:ff7a2f2d8d70
   user:        test <test@example.org>
   date:        Mon Jan 01 00:00:12 2007 +0000
   summary:     add delta
--- a/tests/test-push.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-push.t	Tue Dec 02 14:17:09 2014 -0800
@@ -38,7 +38,7 @@
 should have two different branches
   $ cd gitrepo
   $ git branch -v
-    beta       cffa0e8 add beta
+    beta       0f378ab add beta
     master     7eeab2e add alpha
   * not-master 7eeab2e add alpha
 
@@ -77,16 +77,16 @@
   $ hg book not-master -r default/not-master --force
 master and default/master should be diferent
   $ hg log -r master | grep -v ': *master'
-  changeset:   2:72f56395749d
+  changeset:   2:953796e1cfd8
   user:        test
   date:        Mon Jan 01 00:00:12 2007 +0000
   summary:     add gamma
   
   $ hg log -r default/master | grep -v 'master@default'
-  changeset:   3:1436150b86c2
+  changeset:   3:25eed24f5e8f
   tag:         default/master
   tag:         tip
-  parent:      0:3442585be8a6
+  parent:      0:ff7a2f2d8d70
   user:        test <test@example.org>
   date:        Mon Jan 01 00:00:13 2007 +0000
   summary:     add delta
@@ -96,7 +96,7 @@
   $ hg push -r master
   pushing to $TESTTMP/gitrepo
   searching for changes
-  abort: pushing refs/heads/master overwrites 72f56395749d
+  abort: pushing refs/heads/master overwrites 953796e1cfd8
   [255]
 
 ... but succeed with -f
@@ -141,7 +141,7 @@
   added 1 commits with 2 trees and 0 blobs
   updating reference refs/heads/master
   $ hg log -r master
-  changeset:   5:fff64abfde07
+  changeset:   5:ba0476ff1899
   bookmark:    master
   tag:         default/master
   tag:         tip
@@ -157,7 +157,7 @@
   updating to branch default
   5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R hgrepo-test log -r master
-  changeset:   4:fff64abfde07
+  changeset:   4:ba0476ff1899
   bookmark:    master
   tag:         default/master
   tag:         tip
--- a/tests/test-renames.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-renames.t	Tue Dec 02 14:17:09 2014 -0800
@@ -51,12 +51,15 @@
   rm 'gitsubmodule'
   $ fn_git_commit -m 'move submodule'
 
+  $ git checkout -f -b not-master 2>&1 | sed s/\'/\"/g
+  Switched to a new branch "not-master"
+
   $ cd ..
   $ hg clone -q gitrepo hgrepo
   $ cd hgrepo
   $ hg log -p --graph --template "{rev} {node} {desc|firstline}\n{join(extras, ' ')}\n\n"
-  @  4 8ef5468692d8a63a2a56d35540ccc2a83970daf1 move submodule
-  |  branch=default
+  @  4 d22608e850ea875936802e119831f1789f5d98bd move submodule
+  |  branch=default hg-git-rename-source=git
   |
   |  diff --git a/.gitmodules b/.gitmodules
   |  --- a/.gitmodules
@@ -79,8 +82,8 @@
   |  -5944b31ff85b415573d1a43eb942e2dea30ab8be gitsubmodule
   |  +5944b31ff85b415573d1a43eb942e2dea30ab8be gitsubmodule2
   |
-  o  3 82b69d514926123f7d83b6a8fb5b041bc79c5af9 add submodule
-  |  branch=default
+  o  3 db55fd0e7083555ec886f6175fa0a42a711c6592 add submodule
+  |  branch=default hg-git-rename-source=git
   |
   |  diff --git a/.gitmodules b/.gitmodules
   |  new file mode 100644
@@ -103,8 +106,8 @@
   |  @@ -0,0 +1,1 @@
   |  +5944b31ff85b415573d1a43eb942e2dea30ab8be gitsubmodule
   |
-  o  2 79563b42ed93cd47601aec11694f4e0df48457e7 gamma
-  |  branch=default
+  o  2 20f9e56b6d006d0403f853245e483d0892b8ac48 gamma
+  |  branch=default hg-git-rename-source=git
   |
   |  diff --git a/beta b/beta
   |  --- a/beta
@@ -125,8 +128,8 @@
   |   11
   |  +13
   |
-  o  1 d1c40364c3c996350da6963e605df8269db8e311 beta
-  |  branch=default
+  o  1 9f7744e68def81da3b394f11352f602ca9c8ab68 beta
+  |  branch=default hg-git-rename-source=git
   |
   |  diff --git a/alpha b/beta
   |  rename from alpha
@@ -139,8 +142,8 @@
   |   10
   |  +11
   |
-  o  0 0c233c2e91d64435bf329075bc0e7e858bc3b07c alpha
-     branch=default
+  o  0 7bc844166f76e49562f81eacd54ea954d01a9e42 alpha
+     branch=default hg-git-rename-source=git
   
      diff --git a/alpha b/alpha
      new file mode 100644
@@ -158,3 +161,127 @@
      +9
      +10
   
+
+Make a new ordinary commit in Mercurial (no extra metadata)
+  $ echo 14 >> gamma
+  $ hg ci -m "gamma2"
+
+Make a new commit with a copy and a rename in Mercurial
+  $ hg cp gamma delta
+  $ echo 15 >> delta
+  $ hg mv beta epsilon
+  $ echo 16 >> epsilon
+  $ hg ci -m "delta/epsilon"
+  $ hg export .
+  # HG changeset patch
+  # User test
+  # Date 0 0
+  #      Thu Jan 01 00:00:00 1970 +0000
+  # Node ID 01661f396ff940d709465c43e1a8be7f90817bc8
+  # Parent  8aff1302f945109f4ec3daa0a1c4102bbc4dd2e4
+  delta/epsilon
+  
+  diff --git a/gamma b/delta
+  copy from gamma
+  copy to delta
+  --- a/gamma
+  +++ b/delta
+  @@ -11,3 +11,4 @@
+   11
+   13
+   14
+  +15
+  diff --git a/beta b/epsilon
+  rename from beta
+  rename to epsilon
+  --- a/beta
+  +++ b/epsilon
+  @@ -10,3 +10,4 @@
+   10
+   11
+   12
+  +16
+  $ hg push
+  pushing to $TESTTMP/gitrepo
+  searching for changes
+  adding objects
+  added 2 commits with 2 trees and 3 blobs
+  updating reference refs/heads/master
+
+  $ cd ../gitrepo
+  $ git log master --pretty=oneline
+  7283d2253aa25f55777dd963a3d148048e0f9646 delta/epsilon
+  a317f1d089c8f20846717173058ab10054523e0f gamma2
+  d7f31298f27df8a9226eddb1e4feb96922c46fa5 move submodule
+  c610256cb6959852d9e70d01902a06726317affc add submodule
+  e1348449e0c3a417b086ed60fc13f068d4aa8b26 gamma
+  cc83241f39927232f690d370894960b0d1943a0e beta
+  938bb65bb322eb4a3558bec4cdc8a680c4d1794c alpha
+
+Make sure the right metadata is stored
+  $ git cat-file commit master^
+  tree 0adbde18545845f3b42ad1a18939ed60a9dec7a8
+  parent d7f31298f27df8a9226eddb1e4feb96922c46fa5
+  author test <none@none> 0 +0000
+  committer test <none@none> 0 +0000
+  HG:rename-source hg
+  
+  gamma2
+  $ git cat-file commit master
+  tree f8f32f4e20b56a5a74582c6a5952c175bf9ec155
+  parent a317f1d089c8f20846717173058ab10054523e0f
+  author test <none@none> 0 +0000
+  committer test <none@none> 0 +0000
+  HG:rename gamma:delta
+  HG:rename beta:epsilon
+  
+  delta/epsilon
+
+Now make another clone and compare the hashes
+
+  $ cd ..
+  $ hg clone -q gitrepo hgrepo2
+  $ cd hgrepo2
+  $ hg export master
+  # HG changeset patch
+  # User test
+  # Date 0 0
+  #      Thu Jan 01 00:00:00 1970 +0000
+  # Node ID 01661f396ff940d709465c43e1a8be7f90817bc8
+  # Parent  8aff1302f945109f4ec3daa0a1c4102bbc4dd2e4
+  delta/epsilon
+  
+  diff --git a/gamma b/delta
+  copy from gamma
+  copy to delta
+  --- a/gamma
+  +++ b/delta
+  @@ -11,3 +11,4 @@
+   11
+   13
+   14
+  +15
+  diff --git a/beta b/epsilon
+  rename from beta
+  rename to epsilon
+  --- a/beta
+  +++ b/epsilon
+  @@ -10,3 +10,4 @@
+   10
+   11
+   12
+  +16
+
+Regenerate the Git metadata and compare the hashes
+  $ hg gclear
+  clearing out the git cache data
+  $ hg gexport
+  $ cd .hg/git
+  $ git log master --pretty=oneline
+  7283d2253aa25f55777dd963a3d148048e0f9646 delta/epsilon
+  a317f1d089c8f20846717173058ab10054523e0f gamma2
+  d7f31298f27df8a9226eddb1e4feb96922c46fa5 move submodule
+  c610256cb6959852d9e70d01902a06726317affc add submodule
+  e1348449e0c3a417b086ed60fc13f068d4aa8b26 gamma
+  cc83241f39927232f690d370894960b0d1943a0e beta
+  938bb65bb322eb4a3558bec4cdc8a680c4d1794c alpha
--- a/tests/test-subrepos.t	Tue Dec 02 15:57:21 2014 -0800
+++ b/tests/test-subrepos.t	Tue Dec 02 14:17:09 2014 -0800
@@ -83,7 +83,7 @@
   160000 commit aabf7cd015089aff0b84596e69aa37b24a3d090a	xyz/subrepo2
 bring working copy to HEAD state (it's not bare repo)
   $ git reset --hard
-  HEAD is now at 4663c49 Update subrepo2 from hg
+  HEAD is now at ae335e3 Update subrepo2 from hg
   $ cd ..
 
 3. Check .hgsub and .hgsubstate from git repository are merged, not overwritten