> > 2. Conversion from CVS -> SVN. There are some reasonable tools out
> > there, but it's not clear exactly how they work, or how/if they
> > handle vendor branches, etc. What exists today is insufficient for
> > a project like FreeBSD where prior history is dear and loss of such
> > is unacceptable.
> What makes you think current tools (such as cvs2svn) lose any history?
I guess I don't .. though it's kindof hard to tell exactly what it does
from the documentation.
> Having it be clear exactly how they work is another matter.
> Conversion from CVS to SVN is inherently complex; to make it clear how
> a conversion works means describing something very complex. Certainly
> cvs2svn could be better documented (I don't know about the other
> converters), but it sounds like you're wishing for simplicity where
> none can ever be.
I'm not wishing for simplicity.. I agree the problem is inherently
complex (and I certainly don't understand all the subtle issues),
and therefore the solution must also be. But converting a repo
is a relatively rare operation, so "one time" complexity is fine.
However, the conversion must be "complete" in the eye of the user
(e.g., FreeBSD community). People must continue to be able to easily
get the same information from the repo that they used to could get.
So the question is (as you point out): what does "completeness" mean,
and is it even possible to define it, much less achieve it?
I'd be interested in discussing this.. certainly you've thought about
it more than me but I'm curious to get up to speed..
It's clear that you can create a top level subdirectory somewhere
for each tag (branch or revision). But in practice, there are
"global" and "local" tags; the latter are restricted to some subtree.
E.g. in FreeBSD's contrib/ directory where imports of tcpdump, bind,
etc. live. Each release of tcpdump is tagged upon import, etc. Perhaps
there should be tags/ and branches/ subdirectories created at those
levels, etc. This is something that could be manually specified, or
possibly auto-detected by finding the smallest subtree that completely
"contains" the tag.
What about vendor branches? Presumably they can be treated just like
any other branches.
What about untagged branches? Maybe they should just be elided, they
are completely useless anyway. Or they could be given machine generated
names and dumped into some untagged-branches/ directory.
> Your converter wish list is great, I just think it's asking for the
> moon :-). The problem is very, very, very, very, very hard. Just to
> get it to work "correctly" at all is hard. Any enhancement beyond
> that would need extremely exact description...
Yes, certainly it may be impossible to ever do it all..
But I think it's worthwhile to do the thought experiment of asking what
is the best we could feasibly do (putting aside for the moment the
question of who's actually going to find time to write the code), because
what you get from the conversion process is one of the most critical
issues for a project like FreeBSD deciding to move to SVN.
Archie Cobbs * CTO, Awarix * http://www.awarix.com
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Fri Jun 11 22:07:05 2004