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

Re: git-subtree split misbehaviour with a commit having empty ls-tree for the specified subdir

From
Ed Maste <emaste@freebsd.org>
Date
Jun 17, 2020, 14:46 UTC
Message-ID
<CAPyFy2CMSGwPgGLh2Jbfvuf8oRBcvZ1LRv-m7AVvPybtpEybnw@mail.gmail.com>
In-Reply-To
<CAPyFy2Ar+OncJtgZZyAzxs0PkXy5rSU6ALS+MimK8x5TzWjLug@mail.gmail.com>
On Fri, 20 Dec 2019 at 10:56, Ed Maste <emaste@freebsd.org> wrote:
Show 13 quoted lines
>
> On Wed, 18 Dec 2019 at 19:57, Tom Clarkson <tqclarkson@icloud.com> wrote:
> >
> > > Overall I think your proposed algorithm is reasonable (even though I
> > > think it won't address some of the cases in our repo). Will your
> > > algorithm allow us to pass $dir to git rev-list, for the initial
> > > split?
> >
> > Is this just for performance reasons? As I understand it that was left out because it would exclude relevant commits on an existing subtree, but it could make sense as an optimization for the first split of a large repo.
>
> Yes, it's for performance reasons on a first split that I'd like to
> see it. On the FreeBSD repo the difference is some 40 minutes vs. a
> few seconds.

Following up on this old thread, I plan to revisit the optimization, implementing something on top of your work in https://github.com/gitgitgadget/git/pull/493. I might look at adding a --initial flag to subtree split, having it essentially auto-detect a revision to use as the value for --onto. For the common case of an initial merge commit with two parents I think we can relatively easily determine which is the subtree parent. If that's not sufficiently general (or broadly useful outside of our context) we could just create a helper script wrapping `subtree split` tailored to the FreeBSD cases. We have something like 100 projects we're looking to split, as part of our svn to git migration.

Previous: Ed MasteNext: Tom Clarkson
Message 8 of 10 in “git-subtree split misbehaviour with a commit having empty ls-tree for the specified subdir”
  1. Ed MasteNov 22, 2019
  2. Tom ClarksonDec 18, 2019
  3. Ed MasteDec 18, 2019
  4. Tom ClarksonDec 19, 2019
  5. Ed MasteDec 20, 2019
  6. Tom ClarksonDec 22, 2019
  7. Ed MasteJan 21, 2020
  8. Ed MasteJun 17, 2020
  9. Tom ClarksonJun 18, 2020
  10. Ed MasteApr 28, 2020

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.