git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Herland <johan@herland.net>
To: git@vger.kernel.org
Cc: Aaron Crane <git@aaroncrane.co.uk>,
	Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
Subject: Re: cvs revision number -> git commit name?
Date: Wed, 27 Jan 2010 00:43:44 +0100	[thread overview]
Message-ID: <201001270043.44614.johan@herland.net> (raw)
In-Reply-To: <bc341e101001261453u16124186i298a53ead0b4eee2@mail.gmail.com>

On Tuesday 26 January 2010, Aaron Crane wrote:
> Hallvard B Furuseth <h.b.furuseth@usit.uio.no> wrote:
> > When moving from CVS to Git, what's a good way to help Git users
> > find an old commit given the original CVS revision number?  Are
> > there tools available to help?
> >
> > One could commit a table with a (file,revision)->commit mapping,
> > I suppose something can generate it when importing from cvs?
> 
> That's what we decided to do on a recent CVS-to-Git conversion, though
> like you, we also considered munging the log messages instead.  Our
> jury's still out on whether it was the right decision; we haven't had
> much cause to use the result yet.
> 
> One thing to be aware of (beyond the need to run grep to convert old
> CVS revision numbers to Git commit IDs) is that there's a good chance
> the mapping file will pollute the results of `git grep` for some
> tasks.  (We've put the mapping file into our repo, where it's easy to
> find.)  I'm considering gzipping the mapping file as a workaround;
> that would mean our users will need to use zgrep (or equivalent) to
> look up CVS revision numbers, which may or may not be a problem in
> your situation.
> 
> I have an initial patch to git-cvsimport that adds a switch to
> generate the mapping as it goes.  I'm currently trying to find time to
> clean it up and submit it.

You could consider adding the CVS revision numbers as notes (see "git help 
notes" in >= v1.6.6) to the corresponding commits. Then they don't pollute 
the commit messages, but instead live in a separate, but parallel hierarchy 
that can be easily pulled in when you need to reference them (e.g. 
GIT_NOTES_REF="refs/" git log).

The notes feature is still very new, and there are still outstanding patches 
to be merged, but the basics are there in v1.6.6.

FWIW, I was also working on a CVS-to-Git importer (based on what has later 
become the transport-helper infrastructure), that used notes to store 
exactly the metadata you mention above. However, I haven't worked on it for 
a while, and I probably won't have time to pick it up in the immediate 
future.


...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

  reply	other threads:[~2010-01-26 23:51 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-26 21:53 cvs revision number -> git commit name? Hallvard B Furuseth
2010-01-26 22:53 ` Aaron Crane
2010-01-26 23:43   ` Johan Herland [this message]
2010-01-27  8:38     ` Junio C Hamano
2010-01-27 11:28       ` git notes issues (was: cvs revision number -> git commit name?) Johan Herland
2010-01-27 17:47     ` cvs revision number -> git commit name? Hallvard B Furuseth
2010-01-27 22:19       ` Johan Herland

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=201001270043.44614.johan@herland.net \
    --to=johan@herland.net \
    --cc=git@aaroncrane.co.uk \
    --cc=git@vger.kernel.org \
    --cc=h.b.furuseth@usit.uio.no \
    /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).