From: Ping Yin Date: Sun, 27 Apr 2008 07:38:39 GMT Subject: Re: [PATCH] cvsps/cvsimport: fix branch point calculation and broken branch imports Message-ID: <46dff0320804270038t651d94d4t3c63fe0cb5240e0d@mail.gmail.com> In-Reply-To: <46dff0320804262251g3a0f12b2rb9197fc07ea57c51@mail.gmail.com> On Sun, Apr 27, 2008 at 1:51 PM, Ping Yin wrote: > On Sun, Apr 27, 2008 at 1:47 PM, Michael Haggerty 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