From: Michael Haggerty <mhagger@alum.mit.edu>
To: esr@thyrsus.com
Cc: Martin Langhoff <martin.langhoff@gmail.com>,
Julian Phillips <julian@quantumfyre.co.uk>,
git@vger.kernel.org, dev <dev@cvs2svn.tigris.org>
Subject: Re: CVS -> SVN -> Git
Date: Sun, 15 Jul 2007 00:19:11 +0200 [thread overview]
Message-ID: <46994BDF.6050803@alum.mit.edu> (raw)
In-Reply-To: <20070714195252.GB11010@thyrsus.com>
Eric S. Raymond wrote:
> In slightly more detail: I just finished forward-porting sccs2rcs to
> Python, I've been moving some Subversion-hosted stuff to Mercurial,
> and I've been thinking about writing a simple rcs2svn because the last
> time I tried using cvs2svn on a large RCS history (the Jargon File, as
> it happens, a couple years back) it did a very poor job of coalescing
> related commits without the CVS metadata. I'm going to hope 2.0.0 has
> fixed that; I'll experiment and see.
Could you give a quick summary of the relevant differences between CVS
and RCS files in this context? Then I'd be happy to try to figure out
how bad the situation still is today, and whether it can be easily improved.
> [...]
> So, I hear about plans to make cvs2svn generate something other than
> Subversion, and here's my instant reaction:
>
> DON'T DO IT!
>
> This is not because I think Subversion is some kind of final answer to the
> VCS problem. Fame from it -- I'm moving towards Mercurial. No, the
> real reason I think this would be a waste of time is subtler than that.
>
> Subversion, by design, is very good at capturing the metadata from
> SCCS and RCS and the various CVS variants floating around. In fact,
> lifting from those into Subversion is basically lossless - the real
> problems are that (a) as Michael notes, the data you're losslessly
> lifting is scratchy, and (b) as I've noted, you have to use heuristics
> to coalesce file histories into changesets and those don't always make
> the links they should.
>
> That being the case, two-step conversion with tools that import CVS to
> SVN and export from SVN to whatever actually works extremely well.
Other people have complained about having to convert from SVN to
distributed SCMs, because the SVN model doesn't map so easily to their
favorite.
You are basically suggesting that an SVN repository is the best lingua
franca of the SCM world, which I don't believe. The CVS history *does*
have to be deformed a bit to fit into SVN, and an svn2xxx converter
would have to undo the deformation.
My idea is not to built (for example) cvs2git; rather, I'd like cvs2svn
to be split conceptually into two tools:
cvs2<abstract_description_of_cvs_history>, whose job it is to determine
the most likely "true" CVS history based on the data stored in the CVS
repository, and
<abstract_description_of_cvs_history>2svn
Then later write
<abstract_description_of_cvs_history>2git
<abstract_description_of_cvs_history>2hg
etc.
The first split is partly done in cvs2svn 2.0. And I naively imagine
that writing the new output back ends won't be all that much work.
Michael
next prev parent reply other threads:[~2007-07-14 22:19 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-13 14:48 CVS -> SVN -> Git Julian Phillips
2007-07-13 23:03 ` Michael Haggerty
2007-07-14 5:30 ` Martin Langhoff
2007-07-14 17:09 ` Michael Haggerty
2007-07-14 17:32 ` Chris Shoemaker
2007-07-14 20:01 ` Michael Haggerty
2007-07-14 18:14 ` Steffen Prohaska
2007-07-15 2:22 ` Shawn O. Pearce
2007-07-14 19:52 ` Eric S. Raymond
2007-07-14 20:58 ` Junio C Hamano
2007-07-14 21:50 ` Oswald Buddenhagen
2007-07-14 22:19 ` Michael Haggerty [this message]
2007-07-14 22:44 ` Karl Fogel
2007-07-14 23:23 ` David Frech
2007-07-15 2:30 ` Shawn O. Pearce
2007-07-15 11:48 ` Michael Haggerty
2007-07-16 1:08 ` Martin Langhoff
2007-07-16 1:13 ` Julian Phillips
2007-07-16 1:30 ` Karl Fogel
2007-07-15 1:39 ` Eric S. Raymond
2007-07-15 12:04 ` Michael Haggerty
2007-07-15 13:36 ` Eric S. Raymond
2007-07-16 1:05 ` Martin Langhoff
2007-07-19 12:02 ` Markus Schiltknecht
2007-07-20 3:51 ` Karl Fogel
2007-07-19 19:14 ` Simon 'corecode' Schubert
2007-07-20 8:45 ` Markus Schiltknecht
2007-07-15 23:09 ` Scott Lamb
2007-07-19 19:18 ` Simon 'corecode' Schubert
2007-07-19 19:15 ` Simon 'corecode' Schubert
2007-07-20 5:58 ` Julian Phillips
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46994BDF.6050803@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=dev@cvs2svn.tigris.org \
--cc=esr@thyrsus.com \
--cc=git@vger.kernel.org \
--cc=julian@quantumfyre.co.uk \
--cc=martin.langhoff@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).