Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 450424

Summary: dev-vcs/cvsps-3.3-r1 breaks `git cvsimport` from dev-vcs/git-1.8.1
Product: Gentoo Linux Reporter: J <mesektet+gentoobz>
Component: [OLD] DevelopmentAssignee: Sergei Trofimovich (RETIRED) <slyfox>
Status: RESOLVED FIXED    
Severity: normal CC: cvs-utils+obsolete, zeekec
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description J 2013-01-05 17:37:23 UTC
cvsps has changed maintainers, to ESR, and he has ripped out command line flags in the cvsps-3.x series.

The changes break git-cvsimport, because it calls cvsps with some flags that are no longer valid in ESR's tree:
--norc, -u, -A, -q, and --cvs-direct

Arch linux currently installs cvsps-3.4, and git-cvsimport is broken there too.

Solutions:
1. Hack /usr/libexec/cvs-core/git-cvsimport (or possibly patch the git ebuild)
2. Downgrade cvsps to 2.2_beta1

I have not thoroughly tested git-cvsimport with the options ripped out, so option 1 may not be any good.  I don't know if git-cvsimport depended on any of those options in some subtle way.

By the way, cvsps 3.5 is out, although it has the same problem.

Reproducible: Always
Comment 1 Sergei Trofimovich (RETIRED) gentoo-dev 2013-01-05 18:10:15 UTC
Can you try his own reimplementation of the importer?

    http://gitorious.org/cvsps/cvsps/blobs/master/git-cvsimport.py

I'd include it and rescribe as a temporary workaround.
Comment 2 Sergei Trofimovich (RETIRED) gentoo-dev 2013-01-05 18:13:57 UTC
Ah! Iand I forgot the main comment:

If you have access to the whole cvs tree
you might like to use --fast-export.
Comment 3 J 2013-01-05 19:29:25 UTC
The python replacement, tested in an empty directory:
$ git cvsimport -d :pserver:anonymous@lirc.cvs.sourceforge.net/cvsroot/lirc lirc
debug: This is ESR's python script.
git_cvsimport: output directory is not a git repository

$ git init
$ git cvsimport -d :pserver:anonymous@lirc.cvs.sourceforge.net/cvsroot/lirc lirc
debug: This is ESR's python script.
fatal: bad default revision 'HEAD'
git cvsimport: child returned 128.[1]

$ git add -A
$ git commit --allow-empty -m "."
$ git cvsimport -d :pserver:anonymous@lirc.cvs.sourceforge.net/cvsroot/lirc lirc
debug: This is ESR's python script.
cvsps: NOTICE: used alternate strip path /cvsroot/lirc/lirc/
cvsps: branch symbol lirc-0_8_7pre2-branch not translated
fatal: mark :0 not declared
fast-import: dumping crash report to .git/fast_import_crash_21509
git_cvsimport: git cvsimport: child returned 128.


I'm now using `cvsps --fast-export ... | git fast-import` as you suggested to avoid cvsimport.  So far it seems to work.
Comment 4 Sergei Trofimovich (RETIRED) gentoo-dev 2013-01-05 20:23:43 UTC
I've played a bit with git-cvsimport.py and found it quite buggy :]

Masked until it will be able to import some decent repo:

# Sergei Trofimovich <slyfox@gentoo.org> (05 Jan 2013)
# Masked for testing. Known to hang on large repos,
# is not compatible with cvsps-2 (like bug #450424)
>=dev-vcs/cvsps-3
Comment 5 Sergei Trofimovich (RETIRED) gentoo-dev 2013-01-05 20:25:37 UTC
(In reply to comment #3)
> The python replacement, tested in an empty directory:
> $ git cvsimport -d :pserver:anonymous@lirc.cvs.sourceforge.net/cvsroot/lirc
> lirc
> debug: This is ESR's python script.
> git_cvsimport: output directory is not a git repository

Yeah, it's a bit silly. It needs an explicit missing directoyry as an argument:

> $ git cvsimport -d :pserver:anonymous@lirc.cvs.sourceforge.net/cvsroot/lirc -C somewhere lirc

should work. but it definetly sucks :]
Comment 6 Sergei Trofimovich (RETIRED) gentoo-dev 2013-01-09 18:15:30 UTC
Pushed 3.7 which does not hang on repos anymore and should
import repos N times faster (haven't patched/packaged new git-cvsimport yet).
Comment 7 Sergei Trofimovich (RETIRED) gentoo-dev 2014-08-24 13:50:18 UTC
Moved cvsps-3 to SLOT=3 as:

> *cvsps-3.13-r1 (24 Aug 2014)
>
>  24 Aug 2014; Sergei Trofimovich <slyfox@gentoo.org> +cvsps-3.13-r1.ebuild,
>  +files/cvsps-3.13-make.patch, -cvsps-2.1.ebuild, -cvsps-3.10.ebuild,
>  -cvsps-3.13.ebuild:
>  Slot cvsps-3 to SLOT=3 to let git-cvsimport work with cvsps-2 (bug #450424).
Comment 8 Sergei Trofimovich (RETIRED) gentoo-dev 2014-08-24 14:00:30 UTC
Now git uses cvsps:0 (which is cvsps-2):

>  24 Aug 2014; Sergei Trofimovich <slyfox@gentoo.org> git-1.8.1.5-r1.ebuild,
>  git-1.8.1.5.ebuild, git-1.8.2.1.ebuild, git-1.8.3.2-r1.ebuild,
>  git-1.8.4.5.ebuild, git-1.8.5.5.ebuild, git-1.9.3.ebuild, git-2.0.2.ebuild,
>  git-2.0.4.ebuild, git-2.1.0.ebuild, git-9999-r1.ebuild, git-9999-r2.ebuild,
.  git-9999-r3.ebuild, git-9999.ebuild:
>  cvsps-3 is explicitely incompatible with git-cvsimport (bug #450424).

Thanks for the report!