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

Re: [PATCH] mergetool: Provide an empty file when no base exists

From
David Aguilar <davvid@gmail.com>
Date
Jan 20, 2012, 07:07 UTC
Message-ID
<CAJDDKr5Z8JHq7H8ZZVLJvYaR+m4HarYdv2FB7p5ByYbDBemBig@mail.gmail.com>
In-Reply-To
<7vhazqhn8u.fsf@alter.siamese.dyndns.org>
On Thu, Jan 19, 2012 at 11:00 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 44 quoted lines
> David Aguilar <davvid@gmail.com> writes:
>
>> Some mergetools cannot cope when $BASE is missing.
>> This can happen when two branches add the same file.
>> Provide an empty file to make these tools happy.
>>
>> Reported-by: Jason Wenger <jcwenger@gmail.com>
>> Signed-off-by: David Aguilar <davvid@gmail.com>
>> ---
>>  git-mergetool.sh     |    6 +++++-
>>  t/t7610-mergetool.sh |   27 ++++++++++++++++++++++++++-
>>  2 files changed, 31 insertions(+), 2 deletions(-)
>>
>> diff --git a/git-mergetool.sh b/git-mergetool.sh
>> index 085e213..8521b81 100755
>> --- a/git-mergetool.sh
>> +++ b/git-mergetool.sh
>> @@ -224,7 +224,11 @@ merge_file () {
>>      mv -- "$MERGED" "$BACKUP"
>>      cp -- "$BACKUP" "$MERGED"
>>
>> -    base_present   && checkout_staged_file 1 "$MERGED" "$BASE"
>> +    if base_present; then
>> +     checkout_staged_file 1 "$MERGED" "$BASE"
>> +    else
>> +     touch "$BASE"
>> +    fi
>
> Using "touch" for things like this is a disease.
>
> You not just want to make sure it exists, but also you want to make sure
> it is empty, so it would make your intention more explicit and clear if
> you wrote this as
>
>        >"$BASE"
>
> instead.
>
> I also wonder if it may help mergetools if we come up with a fake base
> image using the common material between the two files, in a way similar to
> how git-merge-one-file.sh does it (look for "Added $4 in both, but
> differently"), but obviously it would belong to a separate patch.
>
> Thanks.

Ah, thanks for the pointer. I'll resend shortly. A "fake base" would be very helpful.

-- 
            David
Previous: Junio C HamanoNext: David Aguilar
Message 6 of 17 in “Interesting behavior in git mergetool with no BASE revision”
  1. Jason WengerJan 18, 2012
  2. David AguilarJan 20, 2012
  3. mergetool: Provide an empty file when no base existsDavid Aguilar, Jan 20, 2012
  4. David AguilarJan 20, 2012
  5. Junio C HamanoJan 20, 2012
  6. David AguilarJan 20, 2012
  7. mergetool: Provide an empty file when no base existsDavid Aguilar, Jan 20, 2012
  8. Junio C HamanoJan 20, 2012
  9. David AguilarJan 20, 2012
  10. Junio C HamanoJan 20, 2012
  11. Junio C HamanoJan 20, 2012
  12. mergetool: Provide an empty file when neededDavid Aguilar, Jan 20, 2012
  13. David AguilarJan 20, 2012
  14. Jason WengerJan 20, 2012
  15. Junio C HamanoJan 20, 2012
  16. mergetool: Provide an empty file when neededDavid Aguilar, Jan 20, 2012
  17. mergetool: Provide an empty file when no base existsDavid Aguilar, Jan 20, 2012

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.