diff mercurial/archival.py @ 25615:dc707fb35550

archive: report the node as "{p1node}+" when archiving a dirty wdir() This is more useful than reporting all 'f's, allowing the archive to be diffed against a specific revision to see what changed.
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 16 Jun 2015 23:14:45 -0400
parents 3ec8351fa6ed
children e93036747902
line wrap: on
line diff
--- a/mercurial/archival.py	Mon Jun 15 16:06:17 2015 -0700
+++ b/mercurial/archival.py	Tue Jun 16 23:14:45 2015 -0400
@@ -67,8 +67,14 @@
 def buildmetadata(ctx):
     '''build content of .hg_archival.txt'''
     repo = ctx.repo()
+    hex = ctx.hex()
+    if ctx.rev() is None:
+        hex = ctx.p1().hex()
+        if ctx.dirty():
+            hex += '+'
+
     base = 'repo: %s\nnode: %s\nbranch: %s\n' % (
-        _rootctx(repo).hex(), ctx.hex(), encoding.fromlocal(ctx.branch()))
+        _rootctx(repo).hex(), hex, encoding.fromlocal(ctx.branch()))
 
     tags = ''.join('tag: %s\n' % t for t in ctx.tags()
                    if repo.tagtype(t) == 'global')