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
Junio C Hamano <gitster@pobox.com>
Date
Jan 20, 2012, 07:37 UTC
Message-ID
<7vy5t2g6za.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CAJDDKr490XFqGe+y1pa7fnNhPMRE3ZR3=A+_XNUrCA1GZv+wkw@mail.gmail.com>
David Aguilar <davvid@gmail.com> writes:
Show 7 quoted lines
>>>      local_present  && checkout_staged_file 2 "$MERGED" "$LOCAL"
>>>      remote_present && checkout_staged_file 3 "$MERGED" "$REMOTE"
>>
>> Sorry to be ping-pong-ing like this, but wouldn't we have a similar issue
>> when LOCAL or REMOTE does not exist (e.g. "they modified, we removed")?
>
> Yes.  I'll have a [PATCH v3] soon.

It almost makes me wonder if the obviously simplest change to make checkout_staged_file create an empty file when the asked-for stage does not exist, i.e.

	checkout_stage ()
        {
		if test -n "$1"
                then
			... whatever checkout_staged_file() does ...
		else
			>"$4"
                fi
        }
	checkout_stage $base_mode 1 "$MERGED" "$BASE"
	checkout_stage $local_mode 2 "$MERGED" "$LOCAL"
	checkout_stage $remote_mode 3 "$MERGED" "$REMOTE"
Or even:
	checkout_stage ()
	{
		tmpfile=$(...)
                if test $? -eq 0 -a ...
                then
                	mv -- "$(git rev-parse ...)"
		else
			>"$3"
		fi
        }
	checkout_stage 1 "$MERGED" "$BASE"
	checkout_stage 2 "$MERGED" "$LOCAL"
	checkout_stage 3 "$MERGED" "$REMOTE"

as the current checkout_staged_file() does not seem to check errors in any meaningful way.

Previous: David AguilarNext: Junio C Hamano
Message 10 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.