[PATCH RFC] reflog: adds a reflog extension

Matt Mackall mpm at selenic.com
Mon Oct 6 13:52:30 CDT 2014


On Mon, 2014-10-06 at 14:19 -0400, Jordi Gutiérrez Hermoso wrote:
> On Mon, 2014-10-06 at 10:42 -0700, Durham Goode wrote:
> > On 10/5/14, 6:54 PM, Jordi Gutiérrez Hermoso wrote:
> > > On Wed, 2014-10-01 at 18:45 -0700, Durham Goode wrote:
> > >> # HG changeset patch
> > >> # User Durham Goode <durham at fb.com>
> > >> # Date 1412200597 25200
> > >> #      Wed Oct 01 14:56:37 2014 -0700
> > >> # Node ID 942be96848993cf7ab5ed529db9c1f39c6d43c30
> > >> # Parent  939ce500c92a3dcc0e10815242361ff70a6fcae9
> > >> reflog: adds a reflog extension
> > >>
> > > I'm a little bothered by the UI. Like you said in a later email, the
> > > goal here is to undo bookmark or pwd motions. The fact that the
> > > information to undo is in a log should be mostly irrelevant for the
> > > user. In that case, I propose that what you're currently calling
> > > `reflog` should be something like `debugstatelog` and the `bookmark`
> > > and `update` commands should use this statelog to grow --undo and
> > > possibly --redo flags, e.g.
> > >
> > >      # Move bookmark master to whatever state it was before its current
> > >      # state
> > >      hg bookmark master --undo
> > >
> > >      # Move whatever was the last moved bookmark to whatever its
> > >      # previous state was
> > >      hg bookmark --undo
> > >
> > >      # Move dirstate and active bookmark to whatever they were before
> > >      # the last time an `update` command was invoked
> > >      hg update --undo
> > >
> > > Can we use your extension or perhaps blackbox to also provide an
> > > --undo flag for `update`? Should your extension be rolled into
> > > blackbox?
> > >
> > >
> > Undo and redo have significant connotations (and large expectations) for 
> > a user, so I don't want to use that terminology.
> 
> I think it's expected to expect that `hg bookmark --undo` only moves
> or recreates bookmarks, which is the same thing that `hg bookmark`
> does.

If you think that, you are clearly not supporting a thousand ex-Git
users who are mis-applying their vague understanding of Git branches to
Mercurial bookmarks. Because those users really do expect mysterious
DWIM magic that they can't really describe to happen at various stages.
And --undo is the ultimate DWIM feature name.

> > I'm not sure about putting it in blackbox. Blackbox is about
> > recording a series of actions in the repo. The 'ref/book/thing-log'
> > is about recording previous states of the repository.
> 
> Aren't these just two ways to record the same information?

Nope. Blackbox is free-form human-readable text that's automatically
trimmed at random intervals. It's in no way intended to be reliably read
by machines.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list