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

Re: [PATCH] merge-recursive: do not look at the index during recursive merge

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 9, 2018, 18:49 UTC
Message-ID
<xmqqy3l66f5w.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CABPp-BEJS+59FD-1WduHMmtnBBrgS7xDWJm8Z5URrthDp-0Bwg@mail.gmail.com>
Elijah Newren <newren@gmail.com> writes:
Show 31 quoted lines
> Hi,
>
> On Tue, Jan 9, 2018 at 11:19 AM, Junio C Hamano <gitster@pobox.com> wrote:
>
>>     > I haven't come up with an addition to the test suite, but I suspect
>>     > this change is conceptually wrong.  What if a call to this function
>>     > is made during a recursive, inner merge?
>
> Eek, good catch.
>
>>  merge-recursive.c          |  2 +-
>>  t/t3030-merge-recursive.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 51 insertions(+), 1 deletion(-)
>>
>> diff --git a/merge-recursive.c b/merge-recursive.c
>> index 780f81a8bd..0fc580d8ca 100644
>> --- a/merge-recursive.c
>> +++ b/merge-recursive.c
>> @@ -1954,7 +1954,7 @@ int merge_trees(struct merge_options *o,
>>         if (oid_eq(&common->object.oid, &merge->object.oid)) {
>>                 struct strbuf sb = STRBUF_INIT;
>>
>> -               if (index_has_changes(&sb)) {
>> +               if (!o->call_depth && index_has_changes(&sb)) {
>>                         err(o, _("Dirty index: cannot merge (dirty: %s)"),
>>                             sb.buf);
>>                         return 0;
>
> Yep, looks good to me; sorry for overlooking this.
>
> Elijah

Thanks. The breakage is already in 'master' so this fix needs to be fast-tracked.

Previous: Elijah NewrenNext: Elijah Newren
Message 11 of 15 in “git merge commits staged files (when two trees are identical)”
  1. Andreas KreyDec 20, 2017
  2. Elijah NewrenDec 21, 2017
  3. 1/3 t6044: recursive can silently incorporate dirty changes in a mergeElijah Newren, Dec 21, 2017
  4. 3/3 merge-recursive: Avoid incorporating uncommitted changes in a mergeElijah Newren, Dec 21, 2017
  5. Junio C HamanoDec 22, 2017
  6. Junio C HamanoJan 8, 2018
  7. merge-recursive: do not look at the index during recursive mergeJunio C Hamano, Jan 9, 2018
  8. Junio C HamanoJan 9, 2018
  9. Eric SunshineJan 9, 2018
  10. Elijah NewrenJan 9, 2018
  11. Junio C HamanoJan 9, 2018
  12. 2/3 move index_has_changes() from builtin/am.c to merge.c for reuseElijah Newren, Dec 21, 2017
  13. Elijah NewrenDec 21, 2017
  14. Junio C HamanoDec 22, 2017
  15. Elijah NewrenDec 23, 2017

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.