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

Re: Linux BKCVS kernel history git import..

From
Linus Torvalds <torvalds@osdl.org>
Date
Jul 27, 2005, 15:29 UTC
Message-ID
<Pine.LNX.4.58.0507270819550.3227@g5.osdl.org>
In-Reply-To
<1122457238.3027.37.camel@baythorne.infradead.org>
On Wed, 27 Jul 2005, David Woodhouse wrote:
Show 8 quoted lines
> On Tue, 2005-07-26 at 11:57 -0700, Linus Torvalds wrote:
> > If somebody adds some logic to "parse_commit()" to do the "fake parent"
> > thing, you can stitch the histories together and see the end result as one
> > big tree. Even without that, you can already do things like
> > 
> >         git diff v2.6.10..v2.6.12
> 
> That's a bit of a hack which really doesn't belong in the git tools.

Actually, it's not a hack at all. It's very fundamentally how git works: you give it two trees that it knows about, and it will show the differences between them - regardless of whether they share any common ancestry or not.

Show 5 quoted lines
> It's not particularly hard to reparent the tree for real -- I'd much
> rather see a tool added to git which can _actually_ change the
> 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 commit to have a parent of
> 0bcc493c633d78373d3fcf9efc29d6a710637519, and ripple the corresponding
> SHA1 changes up to the current HEAD.

I used to think I wanted to, but these days I really don't. One of the reasons is that I expect to try to pretty up the old bkcvs conversion some time: use the name translation from the old "shortlog" scripts etc, and see if I can do some other improvements on the conversion (I think I'll remove the BK files - "ChangeSet" etc).

And it's really much easier and more general to have a "graft" facility. It's something that git can do trivially (literally a hook in "parse_commit" to add a special parent), and it's actually a generic mechanism exactly for issues like this ("project had old history in some other format").

Somebody already asked for having the import history for old historic patches - which we _do_ actually have as patches, but which obviously don't have any changelogs except for the version information. Most people may not want that, but the thing is, with a "graft" facility, the people who _do_ want that can easily see it all, and it is totally seamless.

So it's not even a one-time hack - it's a real feature that just in the kernel would have several cases we'd be able to use it for, and the same is likely true for almost any other project that wasn't started purely from git..

		Linus
Previous: David WoodhouseNext: David Woodhouse
Message 5 of 17 in “Linux BKCVS kernel history git import..”
  1. Linus TorvaldsJul 26, 2005
  2. Diego CallejaJul 26, 2005
  3. A Large Angry SCMJul 26, 2005
  4. David WoodhouseJul 27, 2005
  5. Linus TorvaldsJul 27, 2005
  6. David WoodhouseJul 27, 2005
  7. Linus TorvaldsJul 27, 2005
  8. Teach parse_commit_buffer about grafting.Junio C Hamano, Jul 30, 2005
  9. Matthias UrlichsJul 30, 2005
  10. Johannes SchindelinJul 30, 2005
  11. Wolfgang DenkAug 18, 2005
  12. Junio C HamanoAug 18, 2005
  13. Paul MackerrasAug 18, 2005
  14. Linus TorvaldsAug 18, 2005
  15. Paul MackerrasAug 19, 2005
  16. Johannes SchindelinAug 19, 2005
  17. Linus TorvaldsAug 19, 2005

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.