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

Matt Mackall mpm at selenic.com
Tue Mar 24 09:47:38 CDT 2015


On Tue, 2015-03-24 at 04:17 +0000, Martin von Zweigbergk wrote:
> On Mon, Mar 23, 2015 at 7:34 PM David Soria Parra <davidsp at fb.com> wrote:
> 
> > # HG changeset patch
> > # User David Soria Parra <davidsp at fb.com>
> > # Date 1427163012 25200
> > #      Mon Mar 23 19:10:12 2015 -0700
> > # Node ID db4efb64cfb859086e25af34773f808a90505abc
> > # 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
> > @@ -2271,6 +2271,8 @@
> >          fm.startitem()
> >          if ui.verbose:
> >              fc = ctx[f]
> > +            if ui.debugflag and fc.filenode():
> > +                fm.write('hash', '%s ', 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,10 @@
> >    a
> >    l
> >
> > +  $ hg files -r . -X b --debug
> > +  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3          2   a
> > +  047b75c6d7a3ef6a2243bd0e99f94f6ea6683597          1 l l
> > +
> >
> 
> Add a test for working copy too? Including modified, added and removed
> files, ideally.

In fact, I think we should aim for the output being the same format with
--debug on the working copy. In particular, unchanged files should
probably show the filenode from the parent. We have some internal magic
in wctx.manifest() for this, but 'removed' is an interesting case.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list