# [RFC/PATCH] status: suggest 'git merge --abort' when appropriate

3 messages from 2016-07-21 to 2016-07-22. Participants: Matthieu Moy, Stefan Beller, Junio C Hamano.
Thread: https://gitlist.dev/t/42899

## Matthieu Moy, 2016-07-21 12:58

Subject: [RFC/PATCH] status: suggest 'git merge --abort' when appropriate
Message-ID: <20160721125837.3127-1-Matthieu.Moy@imag.fr>
URL: https://gitlist.dev/e/20160721125837.3127-1-Matthieu.Moy%40imag.fr

```
We already suggest 'git rebase --abort' during a conflicted rebase.
Similarly, suggest 'git merge --abort' during conflict resolution on
'git merge'.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 t/t7060-wtstatus.sh    | 4 ++++
 t/t7512-status-help.sh | 1 +
 wt-status.c            | 7 +++++--
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/t/t7060-wtstatus.sh b/t/t7060-wtstatus.sh
index 44bf1d8..4d17363 100755
--- a/t/t7060-wtstatus.sh
+++ b/t/t7060-wtstatus.sh
@@ -34,6 +34,7 @@ test_expect_success 'M/D conflict does not segfault' '
 On branch side
 You have unmerged paths.
   (fix conflicts and run "git commit")
+  (use "git merge --abort" to abort the merge)
 
 Unmerged paths:
   (use "git add/rm <file>..." as appropriate to mark resolution)
@@ -138,6 +139,7 @@ test_expect_success 'status when conflicts with add and rm advice (deleted by th
 On branch master
 You have unmerged paths.
   (fix conflicts and run "git commit")
+  (use "git merge --abort" to abort the merge)
 
 Unmerged paths:
   (use "git add/rm <file>..." as appropriate to mark resolution)
@@ -171,6 +173,7 @@ test_expect_success 'status when conflicts with add and rm advice (both deleted)
 On branch conflict_second
 You have unmerged paths.
   (fix conflicts and run "git commit")
+  (use "git merge --abort" to abort the merge)
 
 Unmerged paths:
   (use "git add/rm <file>..." as appropriate to mark resolution)
@@ -195,6 +198,7 @@ test_expect_success 'status when conflicts with only rm advice (both deleted)' '
 On branch conflict_second
 You have unmerged paths.
   (fix conflicts and run "git commit")
+  (use "git merge --abort" to abort the merge)
 
 Changes to be committed:
 
diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh
index 49d19a3..5c3db65 100755
--- a/t/t7512-status-help.sh
+++ b/t/t7512-status-help.sh
@@ -29,6 +29,7 @@ test_expect_success 'status when conflicts unresolved' '
 On branch conflicts
 You have unmerged paths.
   (fix conflicts and run "git commit")
+  (use "git merge --abort" to abort the merge)
 
 Unmerged paths:
   (use "git add <file>..." to mark resolution)
diff --git a/wt-status.c b/wt-status.c
index de62ab2..1f21b6a 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -948,9 +948,12 @@ static void show_merge_in_progress(struct wt_status *s,
 {
 	if (has_unmerged(s)) {
 		status_printf_ln(s, color, _("You have unmerged paths."));
-		if (s->hints)
+		if (s->hints) {
 			status_printf_ln(s, color,
-				_("  (fix conflicts and run \"git commit\")"));
+					 _("  (fix conflicts and run \"git commit\")"));
+			status_printf_ln(s, color,
+					 _("  (use \"git merge --abort\" to abort the merge)"));
+		}
 	} else {
 		s-> commitable = 1;
 		status_printf_ln(s, color,
-- 
2.8.2.397.gbe91ebf.dirty


```

## Stefan Beller, 2016-07-21 16:58

Subject: Re: [RFC/PATCH] status: suggest 'git merge --abort' when appropriate
Message-ID: <CAGZ79kZ5So-tXRX60CTCxrsgW8Vv7QH5gXGDk89EP69Qk28Kcw@mail.gmail.com>
URL: https://gitlist.dev/e/CAGZ79kZ5So-tXRX60CTCxrsgW8Vv7QH5gXGDk89EP69Qk28Kcw%40mail.gmail.com
In-Reply-To: <20160721125837.3127-1-Matthieu.Moy@imag.fr>

```
On Thu, Jul 21, 2016 at 5:58 AM, Matthieu Moy <Matthieu.Moy@imag.fr> wrote:
> We already suggest 'git rebase --abort' during a conflicted rebase.
> Similarly, suggest 'git merge --abort' during conflict resolution on
> 'git merge'.

I think this is a good addition.

Thanks,
Stefan

```

## Junio C Hamano, 2016-07-22 17:19

Subject: Re: [RFC/PATCH] status: suggest 'git merge --abort' when appropriate
Message-ID: <xmqqa8h9bneo.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqa8h9bneo.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <20160721125837.3127-1-Matthieu.Moy@imag.fr>

```
Matthieu Moy <Matthieu.Moy@imag.fr> writes:

> We already suggest 'git rebase --abort' during a conflicted rebase.
> Similarly, suggest 'git merge --abort' during conflict resolution on
> 'git merge'.
>
> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
> ---

It wasn't immediately obvious without the context that the changed
code will trigger only during a merge, and not just any other case
where we have unmerged index entries.  show_merge_in_progress() is
only called when s.merge_in_progress is set, which in turn is set
only when MERGE_HEAD is there, so we are good here.

Will apply; thanks.

>  t/t7060-wtstatus.sh    | 4 ++++
>  t/t7512-status-help.sh | 1 +
>  wt-status.c            | 7 +++++--
>  3 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/t/t7060-wtstatus.sh b/t/t7060-wtstatus.sh
> index 44bf1d8..4d17363 100755
> --- a/t/t7060-wtstatus.sh
> +++ b/t/t7060-wtstatus.sh
> @@ -34,6 +34,7 @@ test_expect_success 'M/D conflict does not segfault' '
>  On branch side
>  You have unmerged paths.
>    (fix conflicts and run "git commit")
> +  (use "git merge --abort" to abort the merge)
>  
>  Unmerged paths:
>    (use "git add/rm <file>..." as appropriate to mark resolution)
> @@ -138,6 +139,7 @@ test_expect_success 'status when conflicts with add and rm advice (deleted by th
>  On branch master
>  You have unmerged paths.
>    (fix conflicts and run "git commit")
> +  (use "git merge --abort" to abort the merge)
>  
>  Unmerged paths:
>    (use "git add/rm <file>..." as appropriate to mark resolution)
> @@ -171,6 +173,7 @@ test_expect_success 'status when conflicts with add and rm advice (both deleted)
>  On branch conflict_second
>  You have unmerged paths.
>    (fix conflicts and run "git commit")
> +  (use "git merge --abort" to abort the merge)
>  
>  Unmerged paths:
>    (use "git add/rm <file>..." as appropriate to mark resolution)
> @@ -195,6 +198,7 @@ test_expect_success 'status when conflicts with only rm advice (both deleted)' '
>  On branch conflict_second
>  You have unmerged paths.
>    (fix conflicts and run "git commit")
> +  (use "git merge --abort" to abort the merge)
>  
>  Changes to be committed:
>  
> diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh
> index 49d19a3..5c3db65 100755
> --- a/t/t7512-status-help.sh
> +++ b/t/t7512-status-help.sh
> @@ -29,6 +29,7 @@ test_expect_success 'status when conflicts unresolved' '
>  On branch conflicts
>  You have unmerged paths.
>    (fix conflicts and run "git commit")
> +  (use "git merge --abort" to abort the merge)
>  
>  Unmerged paths:
>    (use "git add <file>..." to mark resolution)
> diff --git a/wt-status.c b/wt-status.c
> index de62ab2..1f21b6a 100644
> --- a/wt-status.c
> +++ b/wt-status.c
> @@ -948,9 +948,12 @@ static void show_merge_in_progress(struct wt_status *s,
>  {
>  	if (has_unmerged(s)) {
>  		status_printf_ln(s, color, _("You have unmerged paths."));
> -		if (s->hints)
> +		if (s->hints) {
>  			status_printf_ln(s, color,
> -				_("  (fix conflicts and run \"git commit\")"));
> +					 _("  (fix conflicts and run \"git commit\")"));
> +			status_printf_ln(s, color,
> +					 _("  (use \"git merge --abort\" to abort the merge)"));
> +		}
>  	} else {
>  		s-> commitable = 1;
>  		status_printf_ln(s, color,

```
