git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Michael Haggerty <mhagger@alum.mit.edu>
To: Michael J Gruber <git@drmicha.warpmail.net>
Cc: Junio C Hamano <gitster@pobox.com>,
	Heiko Voigt <git-list@hvoigt.net>,
	ydirson@altern.org, git@vger.kernel.org
Subject: Re: [PATCH v3 0/2] cvsimport: add test illustrating a bug in cvsps
Date: Sat, 21 Mar 2009 06:41:11 +0100	[thread overview]
Message-ID: <49C47DF7.9000601@alum.mit.edu> (raw)
In-Reply-To: <49C22166.3000807@drmicha.warpmail.net>

[-- Attachment #1: Type: text/plain, Size: 2628 bytes --]

Michael J Gruber wrote:
> [...]
> Right now this really seems to be going in the direction of: Make
> everyone feel uneasy about working with git on cvs repos at all (aka
> guerilla git), because git cvsimport still seems to be "recommended" or
> "the standard", we have all this talk about how bad it is, and no clear
> alternative.
> 
> I wish we had something saying: "If your cvs repo fulfills these
> conditions you can use cvsimport. If not watch out for the following
> (cvsps related) caveats. If you don't need two-way sync you're better of
> with..."

Good idea.  Let me try to summarize the situations I have found that can
result in cvsps/cvsimport giving objectively incorrect output.  I am
only including the most blatant problems that can cause the content
checked out of git to differ from that checked out of CVS.  I have
attached some scripts that illustrate some of the problems that I
haven't yet submitted to the test suite.


Problems known to occur in the conversion of CVS HEAD:

- If any files were ever "cvs import"ed more than once (e.g., import of
more than one vendor release) but not modified locally, then the HEAD
version is incorrect (t9601-cvsimport-vendor-branch.sh).

- If the CVS timestamps on subsequent revisions are out of order (e.g.,
because of clock skew) then file commits can be out of order in git
(e.g. b.txt<1.2> overwritten by b.txt<1.1>).  This is demonstrated by
t9603-cvsimport-time.sh.

- If two files ever had what look like cross-cross commits within
cvsps's 5-minute time window (e.g.,

a.txt<1.1> Log message 1
a.txt<1.2> Log message 2

b.txt<1.1> Log message 2
b.txt<1.2> Log message 1

) then the commits of one file will be out of order in git (e.g.
b.txt<1.2> overwritten by b.txt<1.1>).  I have a test for this that I
haven't yet submitted.


Problems known to occur in the conversion of CVS branches:

Any of the above problems can occur, plus:

- A branch does not appear in the git repository if no commits were made
on the branch (t01.sh)

- All files from the branching point are added to a branch, including
those that were never added to the branch in CVS.  (CVS allows part of a
source tree to be added to a branch/tag.) (t06.sh)

- A file that was added to the source branch *after* a daughter branch
was created but before the first commit on the branch will incorrectly
be added to the daughter branch in git. (t04.sh)


Problems known to occur in the conversion of CVS tags:

Any of the above problems can affect the content of the tag, plus:

- If multiple tags mark the same revision, only one of them is included
in the conversion. (t03.sh)


Michael

[-- Attachment #2: t01.sh --]
[-- Type: application/x-sh, Size: 414 bytes --]

[-- Attachment #3: t06.sh --]
[-- Type: application/x-sh, Size: 678 bytes --]

[-- Attachment #4: t04.sh --]
[-- Type: application/x-sh, Size: 700 bytes --]

[-- Attachment #5: t03.sh --]
[-- Type: application/x-sh, Size: 448 bytes --]

  parent reply	other threads:[~2009-03-21  5:44 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-23 18:49 [PATCH] cvsimport: add test illustrating a bug in cvsps Heiko Voigt
2009-02-23 20:35 ` Heiko Voigt
2009-02-24  5:00 ` Michael Haggerty
2009-03-02 17:59   ` [PATCH v2 0/1] " Heiko Voigt
2009-03-02 17:59   ` [PATCH v2 1/1] " Heiko Voigt
2009-03-09 11:26     ` [CVSPS PATCH] fix: correct rev order in case commiters clocks were not syncronised Heiko Voigt
2009-03-09 15:02       ` Michael Haggerty
2009-03-18 17:33         ` [PATCH v3 0/2] cvsimport: add test illustrating a bug in cvsps Heiko Voigt
2009-03-18 18:22           ` Junio C Hamano
2009-03-19 10:41             ` Michael J Gruber
2009-03-19 11:00               ` Johannes Schindelin
2009-03-19 11:22                 ` Michael J Gruber
2009-03-21  5:41               ` Michael Haggerty [this message]
2009-03-23 18:11                 ` started a cvsps testsuite Was: " Heiko Voigt
2009-03-23 19:06                   ` Martin Langhoff
2009-03-24  4:50                   ` Michael Haggerty
2009-04-06 19:01                     ` Heiko Voigt
2009-03-23 17:47             ` Heiko Voigt
2009-03-18 17:33         ` [PATCH v3 1/2] " Heiko Voigt
2009-03-18 17:33         ` [PATCH v3 2/2] cvsimport: extend testcase about patchset order to contain branches Heiko Voigt
2009-03-18 17:34         ` [CVSPS PATCH v2] fix: correct rev order in case commiters clocks were not syncronised Heiko Voigt

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49C47DF7.9000601@alum.mit.edu \
    --to=mhagger@alum.mit.edu \
    --cc=git-list@hvoigt.net \
    --cc=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=ydirson@altern.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).