git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Mansfield <david@cobite.com>
To: Steffen Prohaska <prohaska@zib.de>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] cvsps/cvsimport: fix branch point calculation and broken branch imports
Date: Thu, 03 Apr 2008 09:49:42 -0400	[thread overview]
Message-ID: <1207230582.17329.39.camel@gandalf.cobite.com> (raw)
In-Reply-To: <0C7AA499-56AD-4D20-AED0-9E7DDD0C77DF@zib.de>


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

  reply	other threads:[~2008-04-03 13:50 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-02  1:34 [PATCH] cvsps/cvsimport: fix branch point calculation and broken branch imports David Mansfield
2008-04-02 19:29 ` Junio C Hamano
2008-04-03  1:44   ` David Mansfield
2008-04-03  2:06     ` Junio C Hamano
2008-04-03  2:27       ` David Mansfield
2008-04-03  5:47 ` Steffen Prohaska
2008-04-03 13:49   ` David Mansfield [this message]
2008-04-04  9:52     ` Michael Haggerty
2008-04-07 17:54       ` David Mansfield
2008-04-07 18:07         ` Jean-François Veillette
2008-04-09  1:53         ` Michael Haggerty
2008-04-27  5:06           ` Ping Yin
2008-04-27  5:47             ` Michael Haggerty
2008-04-27  5:51               ` Ping Yin
2008-04-27  7:38                 ` Ping Yin
2008-04-27  7:43                   ` Ping Yin
2008-04-27  7:48                   ` Ping Yin
2008-04-27  8:48                     ` Ping Yin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1207230582.17329.39.camel@gandalf.cobite.com \
    --to=david@cobite.com \
    --cc=git@vger.kernel.org \
    --cc=prohaska@zib.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).