[PATCH V3] files: write filenode hash if --debug is passed

Pierre-Yves David pierre-yves.david at ens-lyon.org
Tue Apr 14 15:06:05 CDT 2015



On 04/10/2015 01:02 PM, Martin von Zweigbergk wrote:
>
> On Fri, Apr 10, 2015 at 9:32 AM David Soria Parra <davidsp at fb.com
> <mailto:davidsp at fb.com>> wrote:
>
>     # HG changeset patch
>     # User David Soria Parra <davidsp at fb.com <mailto: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
>
>
> This is surprising to me. I would not expect the "+" on any files that
> changed in revision ".". I think the suffix is to indicate that the
> nodeid is still unknown. For any committed file revisions, the nodeid is
> known and I think it should not have the suffix.
>
> I'd like to see the output of "hg --debug" without "-r ." for modified,
> added and removed files as well.

I shared the same confusion as Martin and dropping this from the 
clowncopter.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list