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

Re: [RFC/PATCH] Make --full-history consider more merges

From
Kevin Bracey <kevin@bracey.fi>
Date
Apr 26, 2013, 19:18 UTC
Message-ID
<517AD304.6020807@bracey.fi>
In-Reply-To
<7v1u9y4gnq.fsf@alter.siamese.dyndns.org>
On 25/04/2013 21:19, Junio C Hamano wrote:
Show 6 quoted lines
> How many decorations are we talking about here? One for each merge 
> commit in the entire history? Do we have a cue that can tell us when 
> we are really done with a commit that lets us discard the associated 
> data as we go on digging, keeping the size of our working set somewhat 
> bounded, perhaps proportional to the number of commits in our 
> rev_info->commits queue? 

As it stands, it's one decoration per interesting merge commit that's processed by try_to_simplify_commit(), if simplify_merges is set. (Only simplify_merges needs the information at present - conceivably limit_to_ancestry could use it too). I don't know how to go about discarding the data, or when it could be done - I'm not clear enough on the wider sequencing machinery in revision.c yet.

I have a first draft of a set of patches, which will follow this message.

1/3 addresses the initial "get simplify_merges right", passing your test. That patch is written to make it easy to extend with the next two, which add a "never eliminate all our TREESAME parents" rule, and reinstate your reverted"eliminate irrelevant side branches". The error I spotted in that was that you weren't checking that you were eliminating root commits - with that fixed it seems sound to me.

I need to create a new test for patch 2, but this version passes the full test suite, including fixing the known failure in t6012, and it also gets the examples in the manual right. (I've extended the examples to include the irrelevant side branch - not sure this is worthwhile, as it's such an unusual case, and I think that section is confusing enough for newbies...)

Kevin
Previous: Junio C HamanoNext: Kevin Bracey
Message 13 of 25 in “Locating merge that dropped a change”
  1. Kevin BraceyApr 9, 2013
  2. Kevin BraceyApr 11, 2013
  3. Junio C HamanoApr 11, 2013
  4. Make --full-history consider more mergesKevin Bracey, Apr 22, 2013
  5. Junio C HamanoApr 22, 2013
  6. Kevin BraceyApr 23, 2013
  7. Junio C HamanoApr 24, 2013
  8. Junio C HamanoApr 25, 2013
  9. Kevin BraceyApr 25, 2013
  10. Junio C HamanoApr 25, 2013
  11. Kevin BraceyApr 25, 2013
  12. Junio C HamanoApr 25, 2013
  13. Kevin BraceyApr 26, 2013
  14. 1/3 revision.c: tighten up TREESAME handling of mergesKevin Bracey, Apr 26, 2013
  15. 2/3 simplify-merges: never remove all TREESAME parentsKevin Bracey, Apr 26, 2013
  16. Junio C HamanoApr 27, 2013
  17. Kevin BraceyApr 28, 2013
  18. Junio C HamanoApr 28, 2013
  19. 3/3 simplify-merges: drop merge from irrelevant side branchKevin Bracey, Apr 26, 2013
  20. Junio C HamanoApr 27, 2013
  21. David AguilarApr 27, 2013
  22. Kevin BraceyApr 28, 2013
  23. Junio C HamanoApr 28, 2013
  24. Kevin BraceyApr 29, 2013
  25. Junio C HamanoApr 29, 2013

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.