Re: [PATCH] cvsps/cvsimport: fix branch point calculation and broken branch imports

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

 



On Thu, 2008-04-03 at 07:47 +0200, Steffen Prohaska wrote:
> On Apr 2, 2008, at 3:34 AM, David Mansfield wrote:
> 
> > P.S Also, as many people may have imported broken branches already,  
> > can
> > anyone thing of a way to fix the branch, (maybe with git-rebase or
> > something)?  The breakage affects, I believe, files not ever  
> > modified on
> > the branch until any given point in time on the branch...
> >
> 
> The breakage you describe might be the same breakage that I recognized
> in June 2007:
> 
>    http://article.gmane.org/gmane.comp.version-control.git/50736
> 
> At that time, I wrote a script (git-transplant) that fixed a broken
> import from CVS for me:
> 
>    http://article.gmane.org/gmane.comp.version-control.git/50746
> 
> The discussion in
> 
>    http://article.gmane.org/gmane.comp.version-control.git/50789
> 
> explains the reason for the script a bit more detailed.
> 
> But note that I never finished git-transplant and I also failed to
> convince anyone that the idea behind the script is of any general value.
> Instead, I decided that git-cvsimport is not the right tools for me; and
> since then I use parsecvs to convert my repositories.
> 


Yes.  It's the same problem.  It will be fixed with the above patches
once they stabilize.  I'll look at the transplant thing too.  It looks
like a good idea.

The main issue with git-cvsimport stems from an unfixable problem.
cvsps's design goal is to show commits in chronological order.  Based
solely on this data, it's impossible to always reconstruct a branch
point (or a tag) since a person could have committed files after someone
else's commit, but not done an update then tagged.  

So some files are from before the 'other' user's commit, and some files
after.  What can you do?  

It's not per se a flaw in cvsps, it always wanted to show commits in
chronological order, but it is a severe limitation in using cvsps to
generate changesets for git.

By engineering a direct tool (such as parsecvs, I presume) these
obstacles can be overcome by constructing some commits that were never
made by the actual users of the cvs repo in order to get it right.

I'm not sure exactly how this is done, because I've never looked at
parsecvs.

David




--
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