Thread (1 message) 1 message, 1 author, 2016-06-15

RE: cvs2git with modules?

From: Kelly F. Hickel <hidden>
Date: 2016-06-15 22:44:47

-----Original Message-----
From: git-owner@vger.kernel.org [mailto:git-owner@vger.kernel.org] On
Behalf Of Michael Haggerty
Sent: Tuesday, June 17, 2008 10:45 AM
To: Kelly F. Hickel
Cc: git@vger.kernel.org
Subject: Re: cvs2git with modules?

[I see you sent essentially the same question to both the git and the
cvs2svn mailing lists.  I am replying on the git list with bcc to the
cvs2svn list.  Followups please to git@vger.kernel.org.]

Kelly F. Hickel wrote:
quoted
I'm trying to use cvs2svn in cvs2git mode to convert a repo with a
number of modules.  Can anyone tell me how to keep that module
structure in the new git repo? So, if in cvs there are two modules,
ModA and ModB, I want to see those two as top level directories in
the
quoted
git repo.

I've tried putting adding the projects in my options file as below,
but it puts the files ModA/* and ModB/* at the top level in the git
repo.
quoted
run_options.add_project(
    r'/home/foo/cvsrepo/ModA,
    trunk_path=ModA',
    [...]
    )

run_options.add_project(
    r'/home/foo/cvsrepo/ModB,
    trunk_path=ModB',
    [...]
    )
I assume that what you mean is that the CVS repository contains
directories like ModA/a, ModA/b, ModB/c, and ModB/d, but the resulting
git repository has only /a, /b, /c, and /d.  That is because cvs2git
completely ignores the trunk_path argument to add_project().

It is strange that the code allows you to add multiple projects,
considering that the cvs2git documentation[1] states that cvs2git only
supports converting single projects at a time.  I guess I forgot to
build that check in.

You can get the result you want by treating ModA and ModB not as two
separate projects, but simply as two separate subdirectories within a
bigger project; i.e.,

run_options.add_project(
    r'/home/foo/cvsrepo,
    [...]
    )

.  This is assuming that ModA and ModB are the only subdirectories
within /home/foo/cvsrepo/; otherwise, make a copy of your CVS repo and
remove the other subdirectories from the copy before the conversion.

Please note that when cvs2git is run this way, it treats tags and
branches as being global.  If you tagged your projects simultaneously,
then this is probably what you want.  But if you tagged your projects
separately, then tag names that happen to be the same across projects
will be considered the same.

It would be possible to add cvs2git support for multiproject
conversions, but I was under the impression that it doesn't make much
sense to put multiple projects into a single git repository.  But I'm
a
novice git user, so I could very well be wrong about that.

Michael
Thanks Michael, this looks like what I want, I'll give it a try, but it
takes a week to do our import.

As far as making sense, it depends on whether you think of them as
projects or cvs modules.  Our projects are made up of multiple cvs
modules, for various reasons, so it makes sense for us.

-Kelly
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help