[darcs-users] darcs repository format naming cleanup

Simon Michael simon at joyful.com
Fri May 7 13:00:58 UTC 2010


Thanks for the detailed explanation Eric.

On 5/7/10 3:41 AM, Eric Kow wrote:
> We would have three formats:
>
>     darcs-1-unhashed (>= 1.x, unhashed, mergers)
>     darcs-1-hashed   (>= 2.x, hashed, mergers)     (get default)
>     darcs-2-hashed   (>= 2.x, hashed, conflictors) (get/init default)
>
> We can either make these flags like --darcs-1-unhashed or arguments to a
> single --format flag, the choice of which I claim is not essential at
> this time.

I think a single --format flag is the right ui and conceptual model, because these are mutually exclusive alternatives.

> Simon's approach is to hide the internal details and present flags which
> answer user questions:
>
>     darcs-1
>     darcs-2-backward-compatible
>     darcs-2

It sounds like we agree on describing repo formats at least conceptually by simple names in a linear progression. And we 
differ on what those names should be.

> But what I'm worried about this:
>
>   A. Future development: introducing a third repository format: what if
>      the Darcs 2.x line introduces a mega-hashed repository format that
>      we want everybody to use?  This means your orthogonal choices would
>      be:
>
>       * mergers vs conflictors
>       * unhashed, hashed, mega-hashed
>
>      How would this fit into an encapsulation model?  Would we deny
>      mergers users the ability to use mega-hashed repos?

As a user, I would want darcs to make this choice for me, and just do the best thing. When that's not possible, I'd 
expect a new format (darcs-3) introduced by darcs 3. Under my proposal darcs 2.x wouldn't be allowed to add an 
incompatible repo format. (But if it did, it would be darcs-2-mega-hashed, and --format would support it just like the 
others.)

Back to the names - the problem is what to call the interim format. Today, there's only one of those, which informally 
we call "hashed". Of the alternatives we've discussed so far, I slightly prefer the "darcs-2-backward-compatible" naming 
scheme; it can be misinterpreted, but so can all the others.

If we can't agree on this or a batter name, a more modest proposal would be to punt the naming issue into the future, 
and stick with --format=darcs-1|hashed|darcs-2. Ie, change the ui and conceptual model to reflect (current) darcs users' 
reality, rather than developers'. This too would be a step forward.




More information about the darcs-users mailing list