monotone-devel
[Top][All Lists]
Advanced

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

[Monotone-devel] Re: Request for help adding monotone output to cvs2svn


From: Bruce Stephens
Subject: [Monotone-devel] Re: Request for help adding monotone output to cvs2svn
Date: Tue, 18 Sep 2007 11:25:13 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

Michael Haggerty <address@hidden> writes:

[...]

> cvs2svn added the unnecessary branch names because of a bug in
> git-fast-import.  I think that problem is fixed, but I haven't gotten
> around to changing cvs2svn.

Ah, OK.

> More interesting is whether the branches have to be created at all
> for CVS (non-branch) tags.  Presumably people often tag a whole
> repository snapshot in CVS, in which case the original branch could
> be tagged rather than creating a synthetic branch only to tag it.
> I'm currently working on code to avoid unnecessary branches for git.

OK, that's probably worth doing.  For repositories which include
imports, I suspect many of the tags will require a branch.  I guess it
would depend on how one uses CVS tags as to whether it's often the
case that a branch is unnecessary.  (At work we quite often (more
often than I'd like) move CVS tags: we tag the repository, but as
release preparation progresses we move tags on selected files as bugs
get fixed.  It's a part of the change control procedure.)

> (I don't know whether monotone makes the same distinction.)

Monotone stores revisions in a DAG, and a revision is in a branch b if
it has a branch cert for b attached to it.  A revision may be in any
number of branches (including none).  Using the normal interface it's
tricky to create a branchless revision; I'm not sure whether the
automate feature makes it easier---probably.  Unlike git, it's normal
for a single branch to fork.

So I'd guess a natural way to do it in monotone is to have everything
on branches, but for tags where you need to, just fork off the branch.

Oh, darn, that doesn't work, because the tagged revision then becomes
a head of the branch.  OK, it'll need to be a separate branch, I
guess.

(In git it's normal for a branch to contain divergence in its past,
but when it actually forked each fork has to have been distinct
branches.)




reply via email to

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