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

Re: avoid duplicate patches from git log ?

From
Jeff King <peff@peff.net>
Date
May 3, 2016, 22:00 UTC
Message-ID
<20160503220039.GB25133@sigill.intra.peff.net>
In-Reply-To
<712E44CFAD1A41A982AEF1540C1F9F80@PhilipOakley>
On Tue, May 03, 2016 at 09:11:55PM +0100, Philip Oakley wrote:
Show 19 quoted lines
> However, as the G4W project (https://github.com/git-for-windows/git/)
> follows the main git repo and its releases, it needs to rebase it's fixup
> patches, while retaining their original series, so has repeated copies of
> those fix patches on the second parent path (a technique Dscho called
> rebasing merges).
> 
> for example:
> > bf1a7ff (MinGW: disable CRT command line globbing, 2011-01-07)
> > a05e9a8 (MinGW: disable CRT command line globbing, 2011-01-07)
> > 45cfa35 (MinGW: disable CRT command line globbing, 2011-01-07)
> > 1d35390 (MinGW: disable CRT command line globbing, 2011-01-07)
> > 022e029 (MinGW: disable CRT command line globbing, 2011-01-07)
> 
> 
> How can I filter out all the duplicate patches which are identical other
> than the commit date?
> 
> The --left --right and --cherry don't appear to do what I'd expect/hope. Any
> suggestions?

I don't think there's a good way right now. The option that suppresses commits is --cherry-pick, but it wants there to be a "left" and "right" from a symmetric difference, and to cull duplicates from the various sides.

I think you really just want to keep a running list of all of the commits you've seen and cull any duplicates. I guess you'd want this as part of the history simplification step, so that whole uninteresting side-branches are culled.

The obvious choice for matching two commits is patch-id, though it can be expensive to generate. There have been patches playing around with caching in the past, but nothing merged. For your purposes, I suspect matching an "(author, authordate, subject)" tuple would be sufficient and fast.

-Peff
Previous: Philip OakleyNext: Junio C Hamano
Message 2 of 7 in “avoid duplicate patches from git log ?”
  1. Philip OakleyMay 3, 2016
  2. Jeff KingMay 3, 2016
  3. Junio C HamanoMay 3, 2016
  4. Philip OakleyMay 3, 2016
  5. Johannes SchindelinMay 4, 2016
  6. Junio C HamanoMay 4, 2016
  7. Johannes SchindelinMay 4, 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.