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

Re: What's cooking in git.git (Jan 2013, #08; Tue, 22)

From
John Keeping <john@keeping.me.uk>
Date
Jan 23, 2013, 09:28 UTC
Message-ID
<20130123092858.GJ7498@serenity.lan>
In-Reply-To
<7vobgglpv4.fsf@alter.siamese.dyndns.org>
On Tue, Jan 22, 2013 at 04:11:59PM -0800, Junio C Hamano wrote:
Show 27 quoted lines
> John Keeping <john@keeping.me.uk> writes:
>> Would you mind holding off on this?  As it stands there are a couple of
>> issues with the cvsimport-3 script including: ...
> 
> Actually I do. I think this, at least the early part of it, should
> be merged to 'next' as soon as possible, *unless*
> 
>  (1) The cvsimport-2 & cvsps2 combo this series ships gives worse
>      experience than cvsimport we ship in v1.8.1 to end users of the
>      current cvsimport with cvsps2; and/or
> 
>  (2) The cvsimport-3 in this series, which is a copy of an older
>      version of what Eric has, is so broken that we are better off
>      starting cvsimport-3 by getting a fresh copy from Eric which
>      has been rewritten in a major way, than applying huge
>      incremental update patches that amounts to a total rewrite.
> 
> The point (1) is important from "no regression" point of view, and
> in a sense more important between the two because it is the first
> step in the overall transition plan.
> 
> Even though there may be remaining issues in cvsimport-3 and cvsps3
> (what new piece of software don't have issues?), my limited
> observation of the exchanges between you and Eric suggests me that
> the problem is not something that requires a total rewrite of how
> cvsimport-3 works, so I do not expect the point (2) to be true,
> either, but if I am mistaken, please let me know.

ESR's cvsimport.py in the cvsps repository has no fixes over what's here. I think his comment in [1] indicates that he won't do any more work on git-cvsimport.

[1] http://article.gmane.org/gmane.comp.version-control.git/214057

In my opinion the incremental import support really is substantially worse in cvsimport-3 than cvsimport-2. cvsimport-2 looks at the output of git-for-each-ref to calculate the dates from which to continue each branch. cvsps cannot be told this information and so the cvsimport-3 script just takes the date of the last commit on the current branch.

On top of that, the incremental switch to cvsps-3 just causes it to output:

    from: refs/heads/branch^0

on the first commit for each branch, which I can't see working if a new branch is created in CVS.

Show 7 quoted lines
> By advancing the topic to 'next', we will give people a more solid
> (read: not getting rewound) foundation to work with than "if you are
> really interested, grab the tip of 'pu', replace it with even newer
> copy from Eric's repository and try it out", so that more people can
> help us polish the scaffolding to let us ship two versions and also
> find issues in the new cvsimport-3 and help fixing them.  At least,
> that is what I've been hoping.

That's what I've done and it's convinced me that cvsps-3 is not ready for use with incremental imports as it stands.

Show 6 quoted lines
> I could stop at the first three patches, that is, introducing the
> version switch wrapper that switches between cvsps2+cvsimport-2
> combo and nothing, and then let you and Eric redo the "start adding
> cvsps 3.x support" and later patches when cvsimport-3 is ready.
> That would give you a larger lattitude to rework cvsimport-3.  Is
> that preferrable?

My preference would be for something like this, possibly with an expanded examples section showing how to pipe the output of cvsps-3 or cvs2git into git-fast-import:

-- >8 --
diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt
index 9d5353e..20b846e 100644
--- a/Documentation/git-cvsimport.txt
+++ b/Documentation/git-cvsimport.txt
@@ -18,6 +18,11 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
+*WARNING:* `git cvsimport` uses cvsps version 2, which is considered
+deprecated; it does not work with cvsps version 3 and later.  If you are
+performing a one-shot import of a CVS repository consider using cvsps-3,
+cvs2git or parsecvs directly.
+
 Imports a CVS repository into git. It will either create a new
 repository, or incrementally import into an existing one.
 
-- 8< --


John
Previous: Junio C HamanoNext: Chris Rorvick
Message 4 of 15 in “What's cooking in git.git (Jan 2013, #08; Tue, 22)”
  1. Junio C HamanoJan 22, 2013
  2. John KeepingJan 22, 2013
  3. Junio C HamanoJan 23, 2013
  4. John KeepingJan 23, 2013
  5. Chris RorvickJan 23, 2013
  6. John KeepingJan 23, 2013
  7. Junio C HamanoJan 23, 2013
  8. John KeepingJan 23, 2013
  9. Junio C HamanoJan 24, 2013
  10. git-cvsimport.txt: cvsps-2 is deprecatedJohn Keeping, Jan 24, 2013
  11. Junio C HamanoJan 24, 2013
  12. John KeepingJan 24, 2013
  13. Junio C HamanoJan 24, 2013
  14. Chris RorvickJan 25, 2013
  15. John KeepingJan 25, 2013

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.