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

Re: Detecting redundant commits

From
Jeff King <peff@peff.net>
Date
Jan 5, 2016, 04:00 UTC
Message-ID
<20160105040026.GB22620@sigill.intra.peff.net>
In-Reply-To
<nngtwmtwd2q.fsf@lnx-dag.us.cray.com>
On Mon, Jan 04, 2016 at 09:59:09AM -0600, greened@obbligato.org wrote:
Show 8 quoted lines
> I am attempting to teach cherry-pick to handle redundant commits
> gracefully (via a new --skip-redundant-commits option) instead of
> aborting.  However, I'm struggling a bit with how to check if the
> changes in a commit will become redundant when appied to the new HEAD.
> 
> I found diff_tree_sha1 which seems promising.  Am I on the right track?
> If not, what's the best way to determine whether a commit object is
> redundant with respect to HEAD?

Do you mean commits that are in the cherry-pick range but have matching commits already in HEAD? For that, you'd want to use patch-ids.[ch], but I think we already do.

Or do you mean commits that, when applied, we find turn out to have empty changes (e.g., because we have a set of commits that have different patch-ids, but do roughly the same thing)? I don't think you can find that with a straight end-to-end diff. You have try to apply and then look at the result. I think we already catch that case (see --allow-empty), though I think the only options are "preserve" or "abort", not "silently skip" (and it sounds like the latter is what you would want).

Or am I missing the point completely? :)
-Peff
Previous: greened@obbligato.orgNext: David Greene
Message 2 of 4 in “Detecting redundant commits”
  1. greened@obbligato.orgJan 4, 2016
  2. Jeff KingJan 5, 2016
  3. David GreeneJan 5, 2016
  4. David A. GreeneJan 8, 2016

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.