All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
Cc: git@vger.kernel.org
Subject: Re: cvsimport/cvsps: wrong revisions in branch
Date: Thu, 25 Jan 2007 12:52:20 -0500	[thread overview]
Message-ID: <20070125175220.GC13089@spearce.org> (raw)
In-Reply-To: <45B8C032.7020004@fs.ei.tum.de>

Simon 'corecode' Schubert <corecode@fs.ei.tum.de> wrote:
> Gerrit Pape wrote:
> >Hi, I struggle with importing a CVS repository into git to switch over
> >development.  In some branches there're differences in the source code
> >after importing into git.  We tracked this down to tags and branches
> >that where tagged partially in CVS, first a tag was set on one
> >subdirectory tree (sources), later on another subdirectory tree (docs).
> >This confuses cvsimport or cvsps, the tag in git after import doesn't
> >match the tag in CVS.
> 
> how do you expect this to ever work?  your tag is not a time stable one.  
> the tag spans multiple change sets.  best forget the whole tag thing, 
> seriously.  my cvs converter [1] already has a hard time reproducing 
> branches correctly.  doing this with tags is impossible.  svn can do this 
> because they don't have tags, so it is a kind of fake.  of course you could 
> do this in git as well by actually creating a branch for a tag, but it is 
> really messy.  just don't do that.

If you are importing your history you probably really do want
the tags.  As broken as they may be.  Because they represent real
state that you probably need to be able to recover in the future.

One could make the argument that most very old tags aren't worth
importing, but certainly tags related to recent releases that are
still in production use (and thus may need patching) are probably
needed.

In Git the only way to really do this is to create a branch from a
nearby commit, then modify the branch until it conforms to the tag.
Do a series of evil merges from the relevant commits of each file
until you get the branch looking the way it needs to.  *THEN*
you tag it.
 
> [1]: <http://ww2.fs.ei.tum.de/~corecode/hg/fromcvs>, not 100% yet, but 
> probably the best you can get at the moment.  i'm a perfectionist, so i 
> might never call it "done".

Also probably the fastest CVS->Git converter publiclly available,
as its backed by git-fast-import.  :)

-- 
Shawn.

  parent reply	other threads:[~2007-01-25 17:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-25 14:22 cvsimport/cvsps: wrong revisions in branch Gerrit Pape
2007-01-25 14:35 ` Simon 'corecode' Schubert
2007-01-25 15:05   ` Uwe Kleine-König
2007-01-25 16:24     ` Simon 'corecode' Schubert
2007-01-25 17:52   ` Shawn O. Pearce [this message]
2007-01-26  2:06   ` Martin Langhoff
2007-01-26  6:20     ` Simon 'corecode' Schubert
2007-01-26 23:12       ` Robin Rosenberg
2007-01-26  9:00     ` Gerrit Pape
2007-01-26 11:56   ` Jakub Narebski

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=20070125175220.GC13089@spearce.org \
    --to=spearce@spearce.org \
    --cc=corecode@fs.ei.tum.de \
    --cc=git@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.