Mercurial > hg-stable
changeset 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 | 6c48f012d37e |
children | e0073dcec588 |
files | mercurial/archival.py tests/test-subrepo-deep-nested-change.t |
diffstat | 2 files changed, 25 insertions(+), 1 deletions(-) [+] |
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')
--- a/tests/test-subrepo-deep-nested-change.t Mon Jun 15 16:06:17 2015 -0700 +++ b/tests/test-subrepo-deep-nested-change.t Tue Jun 16 23:14:45 2015 -0400 @@ -187,6 +187,14 @@ ../wdir/sub1/sub2/folder/test.txt ../wdir/sub1/sub2/sub2 + $ cat ../wdir/.hg_archival.txt + repo: 7f491f53a367861f47ee64a80eb997d1f341b77a + node: 9bb10eebee29dc0f1201dcf5977b811a540255fd+ + branch: default + latesttag: null + latesttagdistance: 4 + changessincelatesttag: 3 + Attempting to archive 'wdir()' with a missing file is handled gracefully $ rm sub1/sub1 $ rm -r ../wdir @@ -204,6 +212,16 @@ Continue relative path printing + subrepos $ hg update -Cq + $ rm -r ../wdir + $ hg archive -S -r 'wdir()' ../wdir + $ cat ../wdir/.hg_archival.txt + repo: 7f491f53a367861f47ee64a80eb997d1f341b77a + node: 9bb10eebee29dc0f1201dcf5977b811a540255fd + branch: default + latesttag: null + latesttagdistance: 4 + changessincelatesttag: 3 + $ touch sub1/sub2/folder/bar $ hg addremove sub1/sub2 adding sub1/sub2/folder/bar (glob)