[PATCH V3] files: write filenode hash if --debug is passed
David Soria Parra
davidsp at fb.com
Fri Apr 10 16:31:27 UTC 2015
# HG changeset patch
# User David Soria Parra <davidsp at fb.com>
# Date 1427163012 25200
# Mon Mar 23 19:10:12 2015 -0700
# Node ID de49a8dd7d9a2c53e70bfe1436117811ba8b9f72
# Parent 811a1842cfe5f632145912d9bf2dc859e6ee3eeb
files: write filenode hash if --debug is passed
Write the filenode hash similar to hg manifest if --debug is passed.
This allows to retrieve the filenode hash for a specific patho.
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2264,13 +2264,20 @@
rev = ctx.rev()
ret = 1
ds = ctx.repo().dirstate
-
+ st = ctx.repo().status()
+ changed = st.modified + st.removed
for f in ctx.matches(m):
if rev is None and ds[f] == 'r':
continue
fm.startitem()
if ui.verbose:
fc = ctx[f]
+ if ui.debugflag:
+ if f in changed:
+ formatstr = '%s+ '
+ else:
+ formatstr = '%s '
+ fm.write('hash', formatstr, hex(fc.filenode()))
fm.write('size flags', '% 10d % 1s ', fc.size(), fc.flags())
fm.data(abspath=f)
fm.write('path', fmt, m.rel(f))
diff --git a/tests/test-manifest.t b/tests/test-manifest.t
--- a/tests/test-manifest.t
+++ b/tests/test-manifest.t
@@ -32,6 +32,32 @@
a
l
+ $ hg files -r . -X b --debug
+ b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 2 a
+ 047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 1 l l
+
+ $ echo a >> a
+ $ hg files -r . -X b --debug
+ b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3+ 2 a
+ 047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 1 l l
+ $ hg revert --all
+ reverting a
+
+ $ echo new >> new
+ $ hg add new
+ $ hg files -r . -X b --debug
+ b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 2 a
+ 047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 1 l l
+
+ $ hg rm a
+ $ hg files -r . -X b --debug
+ b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3+ 2 a
+ 047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 1 l l
+
+ $ hg revert --all
+ undeleting a
+ forgetting new
+
$ hg manifest -v
644 a
755 * b/a
More information about the Mercurial-devel
mailing list