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

Re: [BUG] Git merge produces inconsistent indentation in merged result

From
Elijah Newren <newren@gmail.com>
Date
Sep 12, 2025, 22:56 UTC
Message-ID
<CABPp-BHYEYgqo=G8q2XKReNn6PM+FWn1_8qfKq-ONS6pXXeN2A@mail.gmail.com>
In-Reply-To
<SN6PR03MB428572C742338251D0399FDFAE08A@SN6PR03MB4285.namprd03.prod.outlook.com>
On Fri, Sep 12, 2025 at 6:14 AM Guo Tingsheng <CoriCraft16@outlook.com> wrote:
Show 62 quoted lines
>
> Hello Git developers,
>
> I would like to report a potential formatting issue I encountered when testing Git merges.
>
> Environment:
> - git version: 2.43.0
> - OS: Ubuntu 24.04 LTS
>
> Steps to reproduce:
> 1. Start from a commit containing the following method:
>
>    public void process() {
>        if (flag) {
>            execute();
>        }
>    }
>
> 2. On branch A, modify the code by adding a new conditional block with indentation consistent with the surrounding style:
>
>    public void process() {
>        if (flag) {
>            execute();
>        }
>        if (shouldLog) {
>            logger.log("Action executed.");
>        }
>    }
>
> 3. On branch B, make no changes to this function.
>
> 4. Merge branch A and branch B using:
>    git merge A
>
> Expected result:
> - The merged file should retain the indentation style introduced by branch A:
>
>    public void process() {
>        if (flag) {
>            execute();
>        }
>        if (shouldLog) {
>            logger.log("Action executed.");
>        }
>    }
>
> Actual result:
> - Git reduces the indentation of the newly added lines, producing inconsistent formatting:
>
>    public void process() {
>        if (flag) {
>            execute();
>        }
>    if (shouldLog) {
>        logger.log("Action executed.");
>    }
>    }
>
> Additional information:
> - This issue appears to occur non-deterministically across different test cases.
> - It does not seem related to core.whitespace or space-change options, but instead to how Git decides indentation for newly introduced blocks.
> - The problem was reproduced using multiple merge strategies (ort, recursive).

I've never seen or heard of such a thing before; can you create a testcase to reproduce it, either a repository that others can clone together with the commands to trigger it, or a bunch of commands to both create a simple repository and demonstrate the issue?

Previous: Guo Tingsheng
Message 2 of 2 in “[BUG] Git merge produces inconsistent indentation in merged result”
  1. Guo TingshengSep 12, 2025
  2. Elijah NewrenSep 12, 2025

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.