git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 14:04:36 +0200	[thread overview]
Message-ID: <469A0D54.8010303@alum.mit.edu> (raw)
In-Reply-To: <20070715013949.GA20850@thyrsus.com>

Eric S. Raymond wrote:
> Michael Haggerty <mhagger@alum.mit.edu>:
>>                                               The CVS history *does*
>> have to be deformed a bit to fit into SVN, and an svn2xxx converter
>> would have to undo the deformation.
> 
> Then perhaps the right thing to think about is this: how exactly does
> CVS history need to be deformed, and is there some way to express the
> lost information as conventional properties or tags?

Hmmm, perhaps "deformed" was not the best word.  "Reorganized" is a
better description.

For example, cvs2svn internally deduces which files should be added to a
given branch in a given commit.  But the information cannot be output to
SVN in that form.  Instead, cvs2svn has to figure out which
*directories* to copy to the branch directory, then which files to
remove from the copied directory (because they shouldn't have been
tagged), and which other files to copy from other sources.  This extra
work, which is quite time- and space-consuming, is worse than pointless
when converting to git, because git has to invert the process to figure
out which individual files have to be tagged!

>> My idea is not to built (for example) cvs2git; rather, I'd like cvs2svn
>> to be split conceptually into two tools:
> 
> Well, that makes more sense.  But how would whatever the first half outputs
> be different from an svn dump file? 

The interface between the two halves does not necessarily need to be a
serialized data stream; it could just as well be via the Python API that
is used internally by cvs2svn to access the reconstructed commits and
supporting databases.  This would require the second half to be written
in Python, but otherwise would be very flexible and would avoid the need
to find a be-all serialized format.

Michael

  reply	other threads:[~2007-07-15 12:05 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
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 [this message]
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=469A0D54.8010303@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).