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