[PATCH 1 of 3 RFC V3] revset: add wdir() function to specify workingctx revision by command

Yuya Nishihara yuya at tcha.org
Fri Mar 20 09:11:53 CDT 2015


On Thu, 19 Mar 2015 23:43:46 -0400, Matt Harbison wrote:
> On Thu, 19 Mar 2015 12:23:12 -0400, Yuya Nishihara <yuya at tcha.org> wrote:
> > # HG changeset patch
> > # User Yuya Nishihara <yuya at tcha.org>
> > # Date 1408164256 -32400
> > #      Sat Aug 16 13:44:16 2014 +0900
> > # Node ID ac80716bb799448df0181f5a3169b7242bdf8400
> > # Parent  5cb459dc32d209653a3e5d77749cf989ab9a51e4
> > revset: add wdir() function to specify workingctx revision by command
> 
> I like this.  I've wanted to see the uncommitted changes in the thg file  
> history more than once.
> 
> > List of commands that will potentially support workingctx revision:
> >
> >   command   default  remarks
> >   --------  -------   
> > -----------------------------------------------------
> >   annotate  p1       useful
> >   archive   p1       might be useful
> 
> Could be useful on Windows to get a tree copy that excludes the .hg dir,  
> and/or in the non zip formats without a 3rd party utility being installed.
> 
> >   cat       p1       might be useful on Windows (no cat)
> >   diff      p1:wdir  (default)
> >   export    p1       might be useful if wctx can have draft commit  
> > message
> >   files     wdir     (default)
> >   grep      tip:0    might be useful
> 
> Useful on Windows (built in 'find' is not nearly as useful).
> 
> >   identify  wdir     (default)
> >   locate    wdir     (default)
> >   log       tip:0    might be useful with -p or -G option
> >   parents   wdir     (default)
> >   status    wdir     (default)
> 
> Based on this table, largefiles will need some fixes to support archive
> and cat (assuming annotate, diff, export and grep aren't useful on a
> largefile), but that doesn't look too complicated.

Good point.

> Not a blocker to adding this revset, but do you have any thoughts on how  
> to get the workingctx in a subrepo?  (Consider something like 'hg cat -r  
> wdir() subrepo/file.txt'.)

I don't have good idea. changectx could have a different function that returns
a subrepo at ctx.subrev(), but only workingctx needs such distinction.

  ctx.wsub(path) -> subrepo at substate[1]
  wctx.wsub(path) -> subrepo at None

> I wish there was a 1 char symbol too, but 'wdir()' seems fine to me given
> how scarce they are.  Is '_' the only symbol left (that won't cause shell
> problems)?

I've proposed a nullary operator '+' before, but it's too magical.

Regards,


More information about the Mercurial-devel mailing list