git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
DMDavid Mansfield <david@cobite.com>
Date
Apr 3, 2008, 13:49 UTC
Message-ID
<1207230582.17329.39.camel@gandalf.cobite.com>
In-Reply-To
<0C7AA499-56AD-4D20-AED0-9E7DDD0C77DF@zib.de>
On Thu, 2008-04-03 at 07:47 +0200, Steffen Prohaska wrote:
Show 31 quoted lines
> 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
Previous: Steffen ProhaskaNext: Michael Haggerty
Message 7 of 18 in “cvsps/cvsimport: fix branch point calculation and broken branch imports”
  1. cvsps/cvsimport: fix branch point calculation and broken branch importsDavid Mansfield, Apr 2, 2008
  2. Junio C HamanoApr 2, 2008
  3. David MansfieldApr 3, 2008
  4. Junio C HamanoApr 3, 2008
  5. David MansfieldApr 3, 2008
  6. Steffen ProhaskaApr 3, 2008
  7. David MansfieldApr 3, 2008
  8. Michael HaggertyApr 4, 2008
  9. David MansfieldApr 7, 2008
  10. Jean-François VeilletteApr 7, 2008
  11. Michael HaggertyApr 9, 2008
  12. Ping YinApr 27, 2008
  13. Michael HaggertyApr 27, 2008
  14. Ping YinApr 27, 2008
  15. Ping YinApr 27, 2008
  16. Ping YinApr 27, 2008
  17. Ping YinApr 27, 2008
  18. Ping YinApr 27, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.