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

Re: cvs revision number -> git commit name?

From
Johan Herland <johan@herland.net>
Date
Jan 26, 2010, 23:43 UTC
Message-ID
<201001270043.44614.johan@herland.net>
In-Reply-To
<bc341e101001261453u16124186i298a53ead0b4eee2@mail.gmail.com>
On Tuesday 26 January 2010, Aaron Crane wrote:
Show 25 quoted lines
> 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
Previous: Aaron CraneNext: Junio C Hamano
Message 3 of 7 in “cvs revision number -> git commit name?”
  1. Hallvard B FurusethJan 26, 2010
  2. Aaron CraneJan 26, 2010
  3. Johan HerlandJan 26, 2010
  4. Junio C HamanoJan 27, 2010
  5. Johan HerlandJan 27, 2010
  6. Hallvard B FurusethJan 27, 2010
  7. Johan HerlandJan 27, 2010

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.