Re: cvs import

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

 



Let's copy the git list too and maybe we can come up with one importer
for everyone.

On 9/13/06, Markus Schiltknecht <markus@xxxxxxxxxx> wrote:
Hi,

I've been trying to understand the cvsimport algorithm used by monotone
and wanted to adjust that to be more like the one in cvs2svn.

I've had some problems with cvs2svn itself and began to question the
algorithm used there. It turned out that the cvs2svn people have
discussed an improved algorithms and are about to write a cvs2svn 2.0.
The main problem with the current algorithm is that it depends on the
timestamp information stored in the CVS repository.

Instead, it would be much better to just take the dependencies of the
revisions into account. Considering the timestamp an irrelevant (for the
import) attribute of the revision.

Now, that can be used to convert from CVS to about anything else.
Obviously we were discussing about subversion, but then there was git,
too. And monotone.

I'm beginning to question if one could come up with a generally useful
cleaned-and-sane-CVS-changeset-dump-format, which could then be used by
importers to all sort of VCSes. This would make monotone's cvsimport
function dependent on cvs2svn (and therefore python). But the general
try-to-get-something-usefull-from-an-insane-CVS-repository-algorithm
would only have to be written once.

On the other hand, I see that lots of the cvsimport functionality for
monotone has already been written (rcs file parsing, stuffing files,
file deltas and complete revisions into the monotone database, etc..).
Changing it to a better algorithm does not seem to be _that_ much work
anymore. Plus the hard part seems to be to come up with a good
algorithm, not implementing it. And we could still exchange our
experience with the general algorithm with the cvs2svn people.

Plus, the guy who mentioned git pointed out that git needs quite a
different dump-format than subversion to do an efficient conversion. I
think coming up with a generally-usable dump format would not be that easy.

So you see, I'm slightly favoring the second implementation approach
with a C++ implementation inside monotone.

Thoughts or comments?
Sorry, I forgot to mention some pointers:

Here is the thread where I've started the discussion about the cvs2svn
algorithm:
http://cvs2svn.tigris.org/servlets/ReadMsg?list=dev&msgNo=1599

And this is a proposal for an algorithm to do cvs imports independant of
the timestamp:
http://cvs2svn.tigris.org/servlets/ReadMsg?list=dev&msgNo=1451

Markus

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: dev-help@xxxxxxxxxxxxxxxxxx




--
Jon Smirl
jonsmirl@xxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]