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

Re: [PATCH v3 2/2] mergetool: honor tempfile configuration when resolving delete conflicts

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 10, 2016, 22:08 UTC
Message-ID
<xmqqpov2c7f3.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<1457594039-22629-2-git-send-email-davvid@gmail.com>
David Aguilar <davvid@gmail.com> writes:
Show 9 quoted lines
> Teach resolve_deleted_merge() to honor the mergetool.keepBackup and
> mergetool.keepTemporaries configuration knobs.
>
> This ensures that the worktree is kept pristine when resolving deletion
> conflicts with the variables both set to false.
>
> Signed-off-by: David Aguilar <davvid@gmail.com>
> ---
> Rebased to include tests and test fixes.
Thanks.  Will queue after applying a single fix-up again.
Show 69 quoted lines
>
>  git-mergetool.sh     | 11 ++++++++++-
>  t/t7610-mergetool.sh | 25 +++++++++++++++++++++++++
>  2 files changed, 35 insertions(+), 1 deletion(-)
>
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index b06ae78..f67bab5 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -126,7 +126,12 @@ resolve_deleted_merge () {
>  		case "$ans" in
>  		[mMcC]*)
>  			git add -- "$MERGED"
> -			cleanup_temp_files --save-backup
> +			if test "$merge_keep_backup" = "true"
> +			then
> +				cleanup_temp_files --save-backup
> +			else
> +				cleanup_temp_files
> +			fi
>  			return 0
>  			;;
>  		[dD]*)
> @@ -135,6 +140,10 @@ resolve_deleted_merge () {
>  			return 0
>  			;;
>  		[aA]*)
> +			if test "$merge_keep_temporaries" = "false"
> +			then
> +				cleanup_temp_files
> +			fi
>  			return 1
>  			;;
>  		esac
> diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
> index 39469d9..db723e8 100755
> --- a/t/t7610-mergetool.sh
> +++ b/t/t7610-mergetool.sh
> @@ -279,6 +279,31 @@ test_expect_success 'mergetool produces no errors when keepBackup is used' '
>  	: >expect &&
>  	echo d | git mergetool a/a/file.txt 2>actual &&
>  	test_cmp expect actual &&
> +	! test -d a &&
> +	git reset --hard HEAD
> +'
> +
> +test_expect_success 'mergetool honors tempfile config for deleted files' '
> +	test_config mergetool.keepTemporaries false &&
> +	test_must_fail git merge move-to-b &&
> +	echo d | git mergetool a/a/file.txt &&
> +	! test -d a &&
> +	git reset --hard HEAD
> +'
> +
> +test_expect_success 'mergetool keeps tempfiles when aborting delete/delete' '
> +	test_config mergetool.keepTemporaries true &&
> +	test_must_fail git merge move-to-b &&
> +	! (echo a; echo n) | git mergetool a/a/file.txt &&
> +	test -d a/a &&
> +	cat  >expect <<-\EOF &&
> +	file_BASE_.txt
> +	file_LOCAL_.txt
> +	file_REMOTE_.txt
> +	EOF
> +	ls -1 a/a | sed -e "s/[0-9]*//g" >actual &&
> +	test_cmp expect actual &&
> +	git clean -fdx &&
>  	git reset --hard HEAD
>  '
Previous: David Aguilar
Message 3 of 3 in “mergetool: support delete/delete conflicts”
  1. 1/2 mergetool: support delete/delete conflictsDavid Aguilar, Mar 10, 2016
  2. 2/2 mergetool: honor tempfile configuration when resolving delete conflictsDavid Aguilar, Mar 10, 2016
  3. Junio C HamanoMar 10, 2016

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.