Re: [PATCH] cvsps/cvsimport: fix branch point calculation and broken branch imports
On Sun, Apr 27, 2008 at 1:51 PM, Ping Yin <pkufranky@gmail.com> wrote:
Show 26 quoted lines
> On Sun, Apr 27, 2008 at 1:47 PM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
> > Ping Yin wrote:
> > > These days i tried to convert the cvs repository into git. I really
> > > want the conversion to be as accurate as possible. However, the cvs
> > > repository has been tagged in a very bad style which makes
> > > git-cvsimport or cvsps not work well.
> > >
> > > cvs2git sounds to be the right tool i should try. Unfortualely, i
> > > can't touch the cvs repository directly. So is it possible to use
> > > cvs2git in the remote host instead of the host of the cvs repository
> > > just as git-cvsimport does? Yes, i know it can't now. I just wonder
> > > whether it is possible to implement.
> >
> > cvs2svn/cvs2git itself can't work with remote repositories. It would be
> > enough if you could just get a copy of the repository; obviously you
> > don't need to use the original.
> >
> > If you can't get a copy of the CVS repository directly, you might be
> > able to recreate it indirectly via information read over the CVS
> > protocol using a tool like CVSsuck [1,2]. I have no experience with
> > CVSsuck, so if you try it out, please let us know whether you were
> > successful.
> >
>
> THX. If i try out cvssuck, i will let you know.
>
Great, i succeed. And the result is exactly what i want!
However, it is so so slow.
Here is a example to convert a module util from cvs to git
--------------------------------------------------------------------------------------------
$ cvssuck $CVSROOT util <1>
$ mkdir util/CVSROOT <2>
$ edit cvs2svn-git.options and cvs2svn-example.options
( change run_options.add_project and ctx.cvs_log_decorder)
$ cvs2svn --options=cvs2svn-git.options
$ mkdir util.git && cd util.git && git init
$ cat ../cvs2svn-tmp/git-{blob,dump}.dat | git-fast-import
-------------------------------------------------------------------------------------------
<1> very slow, about 30 minutes for a very small module.
Other steps are fast enough.
<2> I have to create a dir util/CVSROOT to avoid the error
"util is not a CVS repository, nor a path within a CVS repository. A
CVS repository contains a CVSROOT directory within its root
directory."--
Ping Yin