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

Re: Efficiently detecting paths that differ from each other only in case

From
Dun Peal <dunpealer@gmail.com>
Date
Oct 8, 2010, 22:57 UTC
Message-ID
<AANLkTi=YQOVYsK6Brq5pMiAdrH3Un7RgrWvYf_pymT=d@mail.gmail.com>
In-Reply-To
<20101008200657.GA10954@sigill.intra.peff.net>
On Fri, Oct 8, 2010 at 3:06 PM, Jeff King <peff@peff.net> wrote:
Show 5 quoted lines
> Re-reading your original message, I have a few more thoughts.
>
> One is that you don't need to do this per-commit. You probably want to
> do it per-updated-ref, each of which may be pushing many commits. And
> then you either reject the new ref value or not.

I think I do, actually, because let's say the developer pushes two commits, 1<-2. Suppose commit 1 violates the rule, but commit 2 reverts the violation. One might think that we don't care, since the head will now be on 2, which is a correct state. But in fact we do, because this is Git, and anyone may branch of from 1 in the future, and voila we have a head in an incorrect state.

> Also, you could try not looking at the whole tree by [...]
> only be manually expanding each level [...]
> But that means many git ls-tree calls.

Yeah, that's a pretty good idea, if not for the many ls-tree calls. With their overhead, I strongly suspect it may be slower than the solution you seem to propose, which is:

git ls-tree -r <commit>

which should give the full list of all paths in a commit, upon which I can decide to accept or reject.

Thanks, D
Previous: Jeff KingNext: Jakub Narebski
Message 7 of 14 in “Efficiently detecting paths that differ from each other only in case”
  1. Dun PealOct 8, 2010
  2. Jeff KingOct 8, 2010
  3. Dun PealOct 8, 2010
  4. Jeff KingOct 8, 2010
  5. Dun PealOct 8, 2010
  6. Jeff KingOct 8, 2010
  7. Dun PealOct 8, 2010
  8. Jakub NarebskiOct 9, 2010
  9. Dun PealOct 9, 2010
  10. Jakub NarebskiOct 9, 2010
  11. Jeff KingOct 11, 2010
  12. Dun PealOct 16, 2010
  13. Jeff KingOct 17, 2010
  14. Jonathan NiederOct 8, 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.