git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 0/2] cvsimport: add test illustrating a bug in cvsps

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Mar 21, 2009, 05:41 UTC
Message-ID
<49C47DF7.9000601@alum.mit.edu>
In-Reply-To
<49C22166.3000807@drmicha.warpmail.net>
Michael J Gruber wrote:
Show 11 quoted lines
> [...]
> 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
Previous: Michael J GruberNext: Heiko Voigt
Message 13 of 21 in “cvsimport: add test illustrating a bug in cvsps”
  1. cvsimport: add test illustrating a bug in cvspsHeiko Voigt, Feb 23, 2009
  2. Heiko VoigtFeb 23, 2009
  3. Michael HaggertyFeb 24, 2009
  4. 0/1 cvsimport: add test illustrating a bug in cvspsHeiko Voigt, Mar 2, 2009
  5. 1/1 cvsimport: add test illustrating a bug in cvspsHeiko Voigt, Mar 2, 2009
  6. fix: correct rev order in case commiters clocks were not syncronisedHeiko Voigt, Mar 9, 2009
  7. Michael HaggertyMar 9, 2009
  8. 0/2 cvsimport: add test illustrating a bug in cvspsHeiko Voigt, Mar 18, 2009
  9. Junio C HamanoMar 18, 2009
  10. Michael J GruberMar 19, 2009
  11. Johannes SchindelinMar 19, 2009
  12. Michael J GruberMar 19, 2009
  13. Michael HaggertyMar 21, 2009
  14. started a cvsps testsuite Was: Re: [PATCH v3 0/2] cvsimport: add test illustrating a bug in cvspsHeiko Voigt, Mar 23, 2009
  15. Martin LanghoffMar 23, 2009
  16. Michael HaggertyMar 24, 2009
  17. Heiko VoigtApr 6, 2009
  18. Heiko VoigtMar 23, 2009
  19. 1/2 cvsimport: add test illustrating a bug in cvspsHeiko Voigt, Mar 18, 2009
  20. 2/2 cvsimport: extend testcase about patchset order to contain branchesHeiko Voigt, Mar 18, 2009
  21. fix: correct rev order in case commiters clocks were not syncronisedHeiko Voigt, Mar 18, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.