StatesPlan - a draft of the sprint discussion about liquid hg

Matt Mackall mpm at selenic.com
Sun May 8 15:19:10 CDT 2011


On Sun, 2011-05-08 at 13:27 -0500, Augie Fackler wrote:
> On May 8, 2011, at 9:30 AM, Matt Mackall wrote:
> > 
> > On Sat, 2011-05-07 at 18:37 -0500, Augie Fackler wrote:
> >> On May 7, 2011, at 3:06 PM, Matt Mackall wrote:
> >>> 
> >>> I've written this up in a form I hope gives a pretty clear plan for the
> >>> groundwork here:
> >>> 
> >>> http://mercurial.selenic.com/wiki/StatesPlan
> >>> 
> >>> This also proposes some UI for this feature (the hg state command and
> >>> the state: field in the log), which we'd been mostly handwaving to this
> >>> point.
> >>> 
> >>> I think some people at the sprint missed the discussion of the local
> >>> feature, so please take a look at that.
> >>> 
> >>> I've mostly left out Pierre-Yves very interesting model for changeset
> >>> management (briefly discussed at the end) as it would double the length
> >>> of the document to go into a similar level of detail and states need to
> >>> be implemented first at any rate.
> >>> 
> >>> Similarly, Henrik and Martin's work on dead heads shows up here as
> >>> 'abandoned heads' mostly to illustrate that it's an orthogonal feature.
> >> 
> >> Only first-pass comment:
> >> There's a tense disagreement between hg state --abandon and hg state --{dead,frozen}. Perhaps the latter should be --{kill,freeze}?
> > 
> > You missed:
> > 
> > "...abandoned changesets are implemented via markers in history so they
> > are not part of the states concept..."
> > 
> > "To mark a branch as abandoned, use 'hg commit --abandon'..."
> 
> <bikeshed>
> Fair enough. I think that it's clearer to have the state modification
> flags be in present tense (since you're causing the state change)
> rather than past (which sounds like "show me things in state dead" to
> me). Do you mind if I make such a change?

I don't going from adjectives to verbs is ideal. We'd have:

 frozen -> freeze
 liquid -> liquify
 local  -> localize
 dead -> kill

For starters, this is an excellent survey of the irregularity of
English. Further, they're wrong. If you liquify a local changeset,
you're implying it wasn't liquid before. But in fact a local changeset
is just as mutable as a liquid changeset, it's just not visible to
remote users. So the transition verb is actually "unlocalize". Yuck.

I think all the current state names need rethinking. Ideally, they'd:

a) all be on an obvious continuum
b) not have conflicting initials (liquid vs local)
c) not conflict with common options (frozen vs force)

Something like this might work:

published < review < draft < trash

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list