[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] renaming branches

From: Richard Levitte - VMS Whacker
Subject: Re: [Monotone-devel] renaming branches
Date: Thu, 17 Feb 2005 10:19:04 +0100 (CET)

In message <address@hidden> on Thu, 17 Feb 2005 03:06:47 -0500, Jeremy Fincher 
<address@hidden> said:

jemfinch> >  - make each database maintain a 1:1 mapping between
jemfinch> >    branch ID and human-readable name
jemfinch> I'm not sure if this is necessary, or if it's a good thing
jemfinch> to enforce.  People *will* pick duplicate branch names.
jemfinch> There is no doubt in my mind that many people will have
jemfinch> branches named "bugs" or "main" or "dev", etc.  No matter
jemfinch> how many times we say, "Pick a globally unique name!" people
jemfinch> still will not do so.  I think, rather than have the
jemfinch> database *enforce* unique human-readable names, we should
jemfinch> instead have the user disambiguate such collisions himself.
jemfinch> Of course, this wouldn't be very user-friendly if the user
jemfinch> had to disambiguate branch names *every* time, so I suggest
jemfinch> that we cache the user's decision in some way that's easily
jemfinch> editable/readable by the user: either a dotfile in his home
jemfinch> directory or a file in MT/.  We could keep a mapping of
jemfinch> human-readable names to random ids, and use that first when
jemfinch> we're given a branch name by the user.

I think that's a horrible idea.  After all, part of a distributed SCM
is to facilitate communication, and being able to communicate to
others where a certain functionality resides with a name that's easy
to remember is quite important.  What you seem to suggest is that one
should communicate something like "You will find piping functionality
for monotone in branch 889faa6869f6748215632214ed3d43f3058de59d", and
then everyone interested would have to remember to hack MT/branches or
something like that.  And then, there's those of us who sometimes want
to browse the database with monotone-viz or 'monotone agraph | xvcg -', 
and would then have to deal with figuring out what functionality hides
behind each non-descriptive branch ID.

Your idea still has merits, as it permits easy renaming of branches
(you said this yourself).  That in itself works as a way to resolves
branch clashes in the future if there is a situation when branches
aren't as globally unique as you thought when you started.

jemfinch> A nice side effect of that functionality is that the user
jemfinch> could use shorter names for branches, if he so chose.  Also,
jemfinch> in the case that Alice wants to work with Bob's "dev" branch
jemfinch> and Cindy's "dev" branch, she can have a different
jemfinch> "nickname" for each and work with both perfectly fine.

I definitely like the idea of personal branch aliases!

jemfinch> We could use the same scheme for mapping public key
jemfinch> human-readable names to the actual public key.

You do know, don't you, that those names are in the database, right?


Please consider sponsoring my work on free software.
See for details.

Richard Levitte                         address@hidden

"When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up."
                                                -- C.S. Lewis

reply via email to

[Prev in Thread] Current Thread [Next in Thread]