[Top][All Lists]

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

Re: [Monotone-devel] Ideas and questions.

From: Joel Rosdahl
Subject: Re: [Monotone-devel] Ideas and questions.
Date: Wed, 16 Feb 2005 21:18:29 +0100
User-agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4 (Corporate Culture, linux)

Nathaniel Smith <address@hidden> writes:

> [...]
> So, options:
>   a) keep the name "monotone"
>   b) switch to "mtn"
>   c) do both, i.e. have packages that install the binary as one and
>      create a symlink for the other, or somesuch.
> [...]

For the record, I've used both m and mtn as aliases and I have settled
with mtn. My vote (if I have any) goes to switching to mtn.

> [...]
>>>> 6. The manual said that branch names had to be unique globally
>>>> -- does this apply to all Monotone databases everywhere, or just
>>>> the ones that are working on my project?
>>> All monotone databases everywhere, which is why we recommend
>>> embedding a domain name into your branch names.
>> Oh, well I think that certainly needs to be fixed :)
> Oh?  Is it a problem? :-)

I think it might be. Not everyone has a domain name of their own, and
mistakenly named branches certainly will exist. "Hey, I'll start my
new project on a branch named main without reading the manual!" And by
requiring the branch to be well-named from the beginning might create
an unnecessary obstacle for contributing things. If I want to hack on
some new Monotone feature, should I name my branch
net.venge.monotone.feature, net.venge.monotone.jrosdahl.feature,
net.rosdahl.monotone.feature or something else? I'd prefer it if I
could just create *some* branch and then later rename it to fit the
project's branch naming convention. So, I think I'd like to join those
who want to be able to rename branches.

I haven't followed the recent development very closely, but I've seen
some talk about the introduction of "epochs" to make syncing of
rebuilt databases safer -- the problem being that you don't want to
sync an old and a rebuilt database since you would end up with old,
possibly corrupt revisions (or at least duplicated revisions) in the
new database. (?)

If I understand correctly, epochs work like this: Each branch is
associated with an epoch, which is a unique (sufficiently large and
random) number. An epoch is initiated at the first commit to a branch
and then stays the same, unless bumped via a database rebuild or set
explicitly to another value. Netsync is instructed to refuse syncing a
branch if the remote branch's epoch differs from the local branch's
epoch. Correct?

Have you considered taking this machinery a bit further, to enable
branch renaming? What I'm thinking (and it's probably not a novel
idea) is that maybe branch certs could store epochs instead of branch
names? Then some commands could be added for managing a mapping
between branch epochs and names. Would this be possible? If so, what
are the arguments against?


Joel Rosdahl <address@hidden>
Key BB845E97; fingerprint 9F4B D780 6EF4 5700 778D  8B22 0064 F9FF BB84 5E97

reply via email to

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