Re: git cvsimport branches not consistent with CVS branches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



söndag 08 juli 2007 skrev Brian Downing:
> On Sun, Jul 08, 2007 at 10:45:10AM +1000, Gordon Heydon wrote:
> > After some investigation I found that git cvsimport was not importing 
> > branches 100% correctly with CVS.
> > 
> > Git and CVS do branching very differently in that CVS this is done at 
> > the file level (like everything else) and git does it repository wide.
> > 
> > So if I have a CVS repository with the files a, b and c and I branch b 
> > with a `cvs tab -b BRANCH test` on the branch test I will just have the 
> > file b.
> > 
> > If I do a git cvsimport on the test branch there will actually be the 
> > files a, b and c
> > 
> > What I think needs to happen is that when git cvsimport created the 
> > branch in the git repository it needs to delete all files from the 
> > branch that were not branched.
> 
> I've been vaguely working on Yet Another CVS Importer (an incremental
> one; both git-cvsimport (thanks to cvsps) and tailor take about ten
> minutes and a gigabyte of RAM to figure out that nothing has to happen
> with my repository.  I think I can do better than that).

Corecode's fromcvs is pretty fast and incremental and AFAIK accurate. I had 
plenty problems with cvsimport, but fromcvs keeps in sync with the CVS repo.
Get  it at http://ww2.fs.ei.tum.de/~corecode/hg/fromcvs/ .

It does not convert regular tags, only branches, however so there is something to 
do for those that want a complete cvs import.

> In thinking about this case, I think I've decided that you want an
> option on what to do here.  For some repositories you're not going to
> care about having extra files with the tag, and would greatly prefer
> that to having to create a branch for each and every tag (assuming you
> can arrange to have the correct files present otherwise; this isn't
> always possible.)
> 
> For other cases, you really only want to get the subset of the files
> that are tagged.  For this, I think the best arrangement would be to
> make your branch, then make a commit that only deletes the files that
> are not present in the CVS branch, as you said.  Then immediately make

fromcvs drops the files that do not have the branch tag. It is pretty simple to change
the behaviour ( http://rosenberg.homelinux.net/gitweb/gitweb.cgi?p=FROMCVS.git;a=commitdiff;h=eb1c159bcc0d79eab182da3d7040ac62b52fd297 )
although this should be a switch and not hard coded.

-- robin
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux