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

Re: [PATCH RFC] graph: implement git-log(1) --untangle

From
Toon Claes <toon@iotcl.com>
Date
Feb 9, 2026, 06:19 UTC
Message-ID
<87jywmqw08.fsf@iotcl.com>
In-Reply-To
<xmqqv7g9d0kw.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 8 quoted lines
> Toon Claes <toon@iotcl.com> writes:
>
>> I would argue the problem here are not the merge commits, but it's the
>> way this is displayed.
>
> I am curious, as anybody else who has read this message up to this
> point, how your --untangle option improves the same section of the
> history you drew above (which I did not include).

I didn't want to clutter my email with a lot of examples, I would rather have people give it a try. But since you asked.

Without --untangle:
    * 67ad42147a (tag: v2.53.0, origin/master, origin/maint, origin/HEAD, master) Git 2.53
    *   6f328bc9e3 Merge tag 'l10n-2.53.0-v1' of https://github.com/git-l10n/git-po
    |\
    | *   532543fa46 Merge branch 'jx/zh_CN' of github.com:jiangxin/git
    | |\
    | | * eb816ef79e l10n: zh_CN: standardize glossary terms
    | | * 3065daed59 l10n: zh_CN: updated translation for 2.53
    | | * eb3cfc6b2f l10n: zh_CN: fix inconsistent use of standard vs. wide colons
    | * |   5a83d800f3 Merge branch 'l10n/zh-TW/git-2-53' of github.com:l10n-tw/git-po
    | |\ \
    | | * | b47610d61d l10n: zh_TW.po: update Git 2.53 translation
    | * | |   e996719801 Merge branch 'po-id' of github.com:bagasme/git-po
    | |\ \ \
    | | * | | 6ef4d11472 l10n: po-id for 2.53
    | | |/ /
    | * | |   8ef65d7efd Merge branch 'l10n-ga-2.53' of github.com:aindriu80/git-po
    | |\ \ \
    | | * | | d534a373e7 l10n: ga.po: Fix git-po-helper warnings
    | | * | | 0c19f7f950 l10n: ga.po: Update Irish translation for Git 2.53
    | * | | |   b386b3aea7 Merge branch 'master' of github.com:alshopov/git-po
    | |\ \ \ \
    | | * | | | 06045e3984 l10n: bg.po: Updated Bulgarian translation (6091t)
    | * | | | |   af1a298e2c Merge branch 'fr_2.53' of github.com:jnavila/git
    | |\ \ \ \ \
    | | * | | | | 72dd507505 l10n: fr: v2.53
    | | | |_|/ /
    | | |/| | |
    | * | | | |   6f75c474d7 Merge branch 'tr-l10n' of github.com:bitigchi/git-po
    | |\ \ \ \ \
    | | * | | | | d63adbbbd5 l10n: tr: Update Turkish translations
    | | |/ / / /
    | * | | | |   3eaaa7fea4 Merge branch 'master' of github.com:nafmo/git-l10n-sv
    | |\ \ \ \ \
    | | |_|_|_|/
    | |/| | | |
    | | * | | | cba7353aed l10n: sv.po: Update Swedish translation
    * | | | | | 239b7f686c RelNotes: fully spell negation
    * | | | | | 2258446484 RelNotes: correct "fast-import" option name
    |/ / / / /
    * | | | | ea717645d1 RelNotes: a few spelling fixes
    * | | | | ab380cb80b (tag: v2.53.0-rc2) Git 2.53-rc2
    | |/ / /
    |/| | |
    * | | | ab689ea7f9 Revert "Merge branch 'cs/rebased-subtree-split'"
    * | | |   6959eee16e Merge branch 'master' of https://github.com/j6t/git-gui
With --untangle:
    * 67ad42147a (tag: v2.53.0, origin/master, origin/maint, origin/HEAD, master) Git 2.53
    *   6f328bc9e3 Merge tag 'l10n-2.53.0-v1' of https://github.com/git-l10n/git-po
    |\
    | *   532543fa46 Merge branch 'jx/zh_CN' of github.com:jiangxin/git
    | |\
    | | * eb816ef79e l10n: zh_CN: standardize glossary terms
    | | * 3065daed59 l10n: zh_CN: updated translation for 2.53
    | | * eb3cfc6b2f l10n: zh_CN: fix inconsistent use of standard vs. wide colons
    | *   5a83d800f3 Merge branch 'l10n/zh-TW/git-2-53' of github.com:l10n-tw/git-po
    | |\
    | | * b47610d61d l10n: zh_TW.po: update Git 2.53 translation
    | *   e996719801 Merge branch 'po-id' of github.com:bagasme/git-po
    | |\
    | | * 6ef4d11472 l10n: po-id for 2.53
    | *   8ef65d7efd Merge branch 'l10n-ga-2.53' of github.com:aindriu80/git-po
    | |\
    | | * d534a373e7 l10n: ga.po: Fix git-po-helper warnings
    | | * 0c19f7f950 l10n: ga.po: Update Irish translation for Git 2.53
    | *   b386b3aea7 Merge branch 'master' of github.com:alshopov/git-po
    | |\
    | | * 06045e3984 l10n: bg.po: Updated Bulgarian translation (6091t)
    | *   af1a298e2c Merge branch 'fr_2.53' of github.com:jnavila/git
    | |\
    | | * 72dd507505 l10n: fr: v2.53
    | *   6f75c474d7 Merge branch 'tr-l10n' of github.com:bitigchi/git-po
    | |\
    | | * d63adbbbd5 l10n: tr: Update Turkish translations
    | * 3eaaa7fea4 Merge branch 'master' of github.com:nafmo/git-l10n-sv
    | * cba7353aed l10n: sv.po: Update Swedish translation
    * 239b7f686c RelNotes: fully spell negation
    * 2258446484 RelNotes: correct "fast-import" option name
    * ea717645d1 RelNotes: a few spelling fixes
    * ab380cb80b (tag: v2.53.0-rc2) Git 2.53-rc2
    * ab689ea7f9 Revert "Merge branch 'cs/rebased-subtree-split'"
    *   6959eee16e Merge branch 'master' of https://github.com/j6t/git-gui
Show 11 quoted lines
>> There are still some bugs in this implementation. And a bunch of memory
>> leaks. Also am I not sold on the name `--untangle`. It sounds catchy,
>> but it's name isn't very meaningful for most users. I've been thinking
>> about `--ignore-merge-base` or `disconnect-merge-base`, but I'm open to
>> better suggestions. That's why I'm submitting this as a RFC. Before I
>> continue work on this, I'm curious if the project is open to such
>> contribution? And if so, which direction it should go?
>
> In any case, I am very happy to see another person who is not afraid
> of our C codebase to have looked at this part of the system (I have
> a long-standing pet peeve, unrelated to this issue, in this area).

I'm happy to learn more about those pet peeves. git-log(1) --graph could definetily use some love.

-- 
Cheers,
Toon
Previous: Junio C HamanoNext: Johannes Sixt
Message 3 of 7 in “graph: implement git-log(1) --untangle”
  1. graph: implement git-log(1) --untangleToon Claes, Feb 6, 2026
  2. Junio C HamanoFeb 6, 2026
  3. Toon ClaesFeb 9, 2026
  4. Johannes SixtFeb 7, 2026
  5. Toon ClaesFeb 9, 2026
  6. Johannes SixtFeb 9, 2026
  7. Junio C HamanoFeb 9, 2026

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.