Re: cvs2svn conversion directly to git ready for experimentation

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

 




On Aug 3, 2007, at 6:03 AM, Johannes Schindelin wrote:

On Fri, 3 Aug 2007, Martin Langhoff wrote:

On 8/3/07, Michael Haggerty <mhagger@xxxxxxxxxxxx> wrote:
cvsps is not a conversion tool at all, though it is used by other
conversion tools to generate the changesets. It appears (I hope I am
not misinterpreting things) to emphasize speed and incremental
operation, for example attempting to make changesets consistent from one run to the next, even if the CVS repository has been changed prudently between runs. cvsps does not appear to attempt to create atomic branch and tag creation commits or handle CVS's special vendorbranch behavior. cvsps operates via the CVS protocol; you don't need filesystem access
to the CVS repository.

100% in agreement. And though I can't claim to be happy with cvsps, in many scenarios it is mighty useful, in spite of its significant warts.
 The "does incrementals" is hugely important these days, as lots of
people use git to run "vendor branches" of upstream projects that use
CVS.

Me too: 100% agreement. A couple of people seem to be content to proclaim
that their incomplete solutions are better, but in the end of the day,
they are as bad as the programs they purport to replace: incomplete.

For the moment, I help myself with tracking the different branches
individually, but there, really, git-cvsimport is as good as the other
"solutions", with the further advantage that they are actually hackable,
and not closed to everybody outside a very small community.

I just want to add a warning. You should be suspicious of branched imported
using git-cvsimport (which is based on cvsps). If the time the branch is
created differs from the time of the first commit to the branch git- cvsimport may get the branching point wrong. This introduces a race condition. Someone may have committed changes to a file that is later changed on the branch. At
that point the history of the imported branch is broken and git reports
_wrong_ changesets.

I ran into this issue and abandoned the use of git-cvsimport. It's too dangerous for me. The testcase in [1] illustrates the problem. I still strongly believe
the warning should be stated in *BOLD* in the documentation.

I'm not saying git-cvsimport is useless. But you should be suspicious about the result of the import, especially if you plan to rely on changesets derived from the imported repo, for example if you plan to do cherry-picking or merging in git; or if you plan to blame people for their stupid changes based on what
you see in gitk (almost happend to me ;).

	Steffen

[1] http://marc.info/?l=git&m=118260312708709&w=2
-
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]

  Powered by Linux