git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 0/2] Fix segmentation fault with cherry-pick
@ 2016-11-25 16:36 Johannes Schindelin
  2016-11-25 16:36 ` [PATCH 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-25 16:36 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

The culprit is actually not cherry-pick, but a special code path that
expects refresh_cache_entry() not to return NULL. And the fix is to
teach it to handle NULL there.

This bug was brought to my attention by Markus Klein via
https://github.com/git-for-windows/git/issues/952.


Johannes Schindelin (2):
  cherry-pick: demonstrate a segmentation fault
  Avoid a segmentation fault with renaming merges

 merge-recursive.c             |  2 ++
 t/t3501-revert-cherry-pick.sh | 12 ++++++++++++
 2 files changed, 14 insertions(+)


base-commit: e2b2d6a172b76d44cb7b1ddb12ea5bfac9613a44
Published-As: https://github.com/dscho/git/releases/tag/cherry-pick-segfault-v1
Fetch-It-Via: git fetch https://github.com/dscho/git cherry-pick-segfault-v1

-- 
2.11.0.rc3.windows.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/2] cherry-pick: demonstrate a segmentation fault
  2016-11-25 16:36 [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
@ 2016-11-25 16:36 ` Johannes Schindelin
  2016-11-26 12:47   ` Johannes Schindelin
  2016-11-25 16:36 ` [PATCH 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-25 16:36 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

In https://github.com/git-for-windows/git/issues/952, a complicated
scenario was described that leads to a segmentation fault in
cherry-pick.

It boils down to a certain code path involving a renamed file that is
dirty, for which `refresh_cache_entry()` returns `NULL`, and that
`NULL` not being handled properly.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 t/t3501-revert-cherry-pick.sh | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 394f0005a1..d96d391af3 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -141,4 +141,16 @@ test_expect_success 'cherry-pick "-" works with arguments' '
 	test_cmp expect actual
 '
 
+test_expect_failure 'cherry-pick fails gracefully with dirty renamed file' '
+	test_commit to-rename &&
+	git checkout -b unrelated &&
+	test_commit unrelated &&
+	git checkout @{-1} &&
+	git mv to-rename.t renamed &&
+	test_tick &&
+	git commit -m renamed &&
+	echo modified >renamed &&
+	git cherry-pick unrelated
+'
+
 test_done
-- 
2.11.0.rc3.windows.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/2] Avoid a segmentation fault with renaming merges
  2016-11-25 16:36 [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
  2016-11-25 16:36 ` [PATCH 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
@ 2016-11-25 16:36 ` Johannes Schindelin
  2016-11-25 16:41 ` [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
  2016-11-26 12:47 ` [PATCH v2 " Johannes Schindelin
  3 siblings, 0 replies; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-25 16:36 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

Under very particular circumstances, merge-recursive's `add_cacheinfo()`
function gets a `NULL` returned from `refresh_cache_entry()` without
expecting it, and subsequently passes it to `add_cache_entry()` which
consequently crashes.

Let's not crash.

This fixes https://github.com/git-for-windows/git/issues/952

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 merge-recursive.c             | 2 ++
 t/t3501-revert-cherry-pick.sh | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/merge-recursive.c b/merge-recursive.c
index 9041c2f149..609061f58a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -235,6 +235,8 @@ static int add_cacheinfo(struct merge_options *o,
 		struct cache_entry *nce;
 
 		nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
+		if (!nce)
+			return err(o, _("addinfo: '%s' is not up-to-date"), path);
 		if (nce != ce)
 			ret = add_cache_entry(nce, options);
 	}
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index d96d391af3..8e21840f11 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -141,7 +141,7 @@ test_expect_success 'cherry-pick "-" works with arguments' '
 	test_cmp expect actual
 '
 
-test_expect_failure 'cherry-pick fails gracefully with dirty renamed file' '
+test_expect_success 'cherry-pick fails gracefully with dirty renamed file' '
 	test_commit to-rename &&
 	git checkout -b unrelated &&
 	test_commit unrelated &&
-- 
2.11.0.rc3.windows.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/2] Fix segmentation fault with cherry-pick
  2016-11-25 16:36 [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
  2016-11-25 16:36 ` [PATCH 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
  2016-11-25 16:36 ` [PATCH 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
@ 2016-11-25 16:41 ` Johannes Schindelin
  2016-11-26 12:47 ` [PATCH v2 " Johannes Schindelin
  3 siblings, 0 replies; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-25 16:41 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

Hi,

On Fri, 25 Nov 2016, Johannes Schindelin wrote:

> The culprit is actually not cherry-pick, but a special code path that
> expects refresh_cache_entry() not to return NULL. And the fix is to
> teach it to handle NULL there.
> 
> This bug was brought to my attention by Markus Klein via
> https://github.com/git-for-windows/git/issues/952.

For the record, I looked at other callers of `refresh_cache_entry()`:
there is only `make_cache_entry()`, whose callers all handle NULL return
values except in resolve-undo.c. But that latter caller is okay because it
specifically does not allow refreshing (by passing 0 as options), so
refresh_cache_entry() cannot return NULL.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] cherry-pick: demonstrate a segmentation fault
  2016-11-25 16:36 ` [PATCH 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
@ 2016-11-26 12:47   ` Johannes Schindelin
  0 siblings, 0 replies; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-26 12:47 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

Hi,

On Fri, 25 Nov 2016, Johannes Schindelin wrote:

> +test_expect_failure 'cherry-pick fails gracefully with dirty renamed file' '

Woops. This title is wrong. It should say instead: 'cherry-pick succeeds
with unrelated renamed, dirty file'.

> +	test_commit to-rename &&
> +	git checkout -b unrelated &&
> +	test_commit unrelated &&
> +	git checkout @{-1} &&
> +	git mv to-rename.t renamed &&
> +	test_tick &&
> +	git commit -m renamed &&
> +	echo modified >renamed &&
> +	git cherry-pick unrelated

And this actually warns about an ambiguous refname.

Will send out v2 in a moment.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 0/2] Fix segmentation fault with cherry-pick
  2016-11-25 16:36 [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
                   ` (2 preceding siblings ...)
  2016-11-25 16:41 ` [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
@ 2016-11-26 12:47 ` Johannes Schindelin
  2016-11-26 12:48   ` [PATCH v2 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
  2016-11-26 12:48   ` [PATCH v2 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
  3 siblings, 2 replies; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-26 12:47 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

The culprit is actually not cherry-pick, but a special code path that
expects refresh_cache_entry() not to return NULL. And the fix is to
teach it to handle NULL there.

This bug was brought to my attention by Markus Klein via
https://github.com/git-for-windows/git/issues/952.

Changes since v1:

- changed test title

- avoided ambiguous refname in test


Johannes Schindelin (2):
  cherry-pick: demonstrate a segmentation fault
  Avoid a segmentation fault with renaming merges

 merge-recursive.c             |  2 ++
 t/t3501-revert-cherry-pick.sh | 12 ++++++++++++
 2 files changed, 14 insertions(+)


base-commit: e2b2d6a172b76d44cb7b1ddb12ea5bfac9613a44
Published-As: https://github.com/dscho/git/releases/tag/cherry-pick-segfault-v2
Fetch-It-Via: git fetch https://github.com/dscho/git cherry-pick-segfault-v2

Interdiff vs v1:

 diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
 index 8e21840f11..4f2a263b63 100755
 --- a/t/t3501-revert-cherry-pick.sh
 +++ b/t/t3501-revert-cherry-pick.sh
 @@ -141,7 +141,7 @@ test_expect_success 'cherry-pick "-" works with arguments' '
  	test_cmp expect actual
  '
  
 -test_expect_success 'cherry-pick fails gracefully with dirty renamed file' '
 +test_expect_success 'cherry-pick works with dirty renamed file' '
  	test_commit to-rename &&
  	git checkout -b unrelated &&
  	test_commit unrelated &&
 @@ -150,7 +150,7 @@ test_expect_success 'cherry-pick fails gracefully with dirty renamed file' '
  	test_tick &&
  	git commit -m renamed &&
  	echo modified >renamed &&
 -	git cherry-pick unrelated
 +	git cherry-pick refs/heads/unrelated
  '
  
  test_done

-- 
2.11.0.rc3.windows.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/2] cherry-pick: demonstrate a segmentation fault
  2016-11-26 12:47 ` [PATCH v2 " Johannes Schindelin
@ 2016-11-26 12:48   ` Johannes Schindelin
  2016-11-26 12:48   ` [PATCH v2 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
  1 sibling, 0 replies; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-26 12:48 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

In https://github.com/git-for-windows/git/issues/952, a complicated
scenario was described that leads to a segmentation fault in
cherry-pick.

It boils down to a certain code path involving a renamed file that is
dirty, for which `refresh_cache_entry()` returns `NULL`, and that
`NULL` not being handled properly.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 t/t3501-revert-cherry-pick.sh | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 394f0005a1..d7b4251234 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -141,4 +141,16 @@ test_expect_success 'cherry-pick "-" works with arguments' '
 	test_cmp expect actual
 '
 
+test_expect_failure 'cherry-pick works with dirty renamed file' '
+	test_commit to-rename &&
+	git checkout -b unrelated &&
+	test_commit unrelated &&
+	git checkout @{-1} &&
+	git mv to-rename.t renamed &&
+	test_tick &&
+	git commit -m renamed &&
+	echo modified >renamed &&
+	git cherry-pick refs/heads/unrelated
+'
+
 test_done
-- 
2.11.0.rc3.windows.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/2] Avoid a segmentation fault with renaming merges
  2016-11-26 12:47 ` [PATCH v2 " Johannes Schindelin
  2016-11-26 12:48   ` [PATCH v2 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
@ 2016-11-26 12:48   ` Johannes Schindelin
  2016-11-26 12:53     ` Johannes Schindelin
  1 sibling, 1 reply; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-26 12:48 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

Under very particular circumstances, merge-recursive's `add_cacheinfo()`
function gets a `NULL` returned from `refresh_cache_entry()` without
expecting it, and subsequently passes it to `add_cache_entry()` which
consequently crashes.

Let's not crash.

This fixes https://github.com/git-for-windows/git/issues/952

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 merge-recursive.c             | 2 ++
 t/t3501-revert-cherry-pick.sh | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/merge-recursive.c b/merge-recursive.c
index 9041c2f149..609061f58a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -235,6 +235,8 @@ static int add_cacheinfo(struct merge_options *o,
 		struct cache_entry *nce;
 
 		nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
+		if (!nce)
+			return err(o, _("addinfo: '%s' is not up-to-date"), path);
 		if (nce != ce)
 			ret = add_cache_entry(nce, options);
 	}
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index d7b4251234..4f2a263b63 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -141,7 +141,7 @@ test_expect_success 'cherry-pick "-" works with arguments' '
 	test_cmp expect actual
 '
 
-test_expect_failure 'cherry-pick works with dirty renamed file' '
+test_expect_success 'cherry-pick works with dirty renamed file' '
 	test_commit to-rename &&
 	git checkout -b unrelated &&
 	test_commit unrelated &&
-- 
2.11.0.rc3.windows.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/2] Avoid a segmentation fault with renaming merges
  2016-11-26 12:48   ` [PATCH v2 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
@ 2016-11-26 12:53     ` Johannes Schindelin
  2016-11-28 18:42       ` Junio C Hamano
  0 siblings, 1 reply; 11+ messages in thread
From: Johannes Schindelin @ 2016-11-26 12:53 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Markus Klein

Hi,

On Sat, 26 Nov 2016, Johannes Schindelin wrote:

> diff --git a/merge-recursive.c b/merge-recursive.c
> index 9041c2f149..609061f58a 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -235,6 +235,8 @@ static int add_cacheinfo(struct merge_options *o,
>  		struct cache_entry *nce;
>  
>  		nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
> +		if (!nce)
> +			return err(o, _("addinfo: '%s' is not up-to-date"), path);
>  		if (nce != ce)
>  			ret = add_cache_entry(nce, options);
>  	}

BTW I was not quite sure why we need to refresh the cache entry here, and
1335d76e45 (merge: avoid "safer crlf" during recording of merge results,
2016-07-08) has a commit message for which I need some time to wrap my
head around.

Also, an error here may be overkill. Maybe we should simply change the "if
(nce != ce)" to an "if (nce && nce != ce)" here, as a locally-modified
file will give a nicer message later, anyway.

Dunno,
Dscho


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/2] Avoid a segmentation fault with renaming merges
  2016-11-26 12:53     ` Johannes Schindelin
@ 2016-11-28 18:42       ` Junio C Hamano
  2016-11-28 18:59         ` Junio C Hamano
  0 siblings, 1 reply; 11+ messages in thread
From: Junio C Hamano @ 2016-11-28 18:42 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, Markus Klein

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Sat, 26 Nov 2016, Johannes Schindelin wrote:
>
>> diff --git a/merge-recursive.c b/merge-recursive.c
>> index 9041c2f149..609061f58a 100644
>> --- a/merge-recursive.c
>> +++ b/merge-recursive.c
>> @@ -235,6 +235,8 @@ static int add_cacheinfo(struct merge_options *o,
>>  		struct cache_entry *nce;
>>  
>>  		nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
>> +		if (!nce)
>> +			return err(o, _("addinfo: '%s' is not up-to-date"), path);
>>  		if (nce != ce)
>>  			ret = add_cache_entry(nce, options);
>>  	}
>
> BTW I was not quite sure why we need to refresh the cache entry here, and
> 1335d76e45 (merge: avoid "safer crlf" during recording of merge results,
> 2016-07-08) has a commit message for which I need some time to wrap my
> head around.

This callsite used to call make_cache_entry() with CE_MATCH_REFRESH,
which creates a new cache entry, calls refresh_cache_ent, and
returns the cache entry"; the log message attempts to explain why we
avoid passing CE_MATCH_REFRESH and instead first add it as a merged
entry and then refresh it (and re-add it if ce got changed).  We
used to leave the old (possibly conflicted) entries for the same
path in the index while refreshing the new cache entry, which has
correctly converted result, and the old entries got in the way,
attempting a wrong eol conversion and declaring that the new entry
out-of-date.  By adding the correctly converted result as a merged
entry, which gets rid of the old entries, the refresh operation will
not be corrupted by them.

> Also, an error here may be overkill. Maybe we should simply change the "if
> (nce != ce)" to an "if (nce && nce != ce)" here, as a locally-modified
> file will give a nicer message later, anyway.

Looking at the commit you blamed, what happened in this case before
that change was that

 (1) make_cache_entry() would have called refresh_cache_entry() with
     CE_MATCH_REFRESH and returned a NULL;

 (2) merge-recursive.c::add_cacheinfo() noticed NULL and did

     return error(_("addinfo_cache failed for path '%s'"), path)

But the updated code forgot that refresh_cache_entry() could return
NULL.  So 1335d76e45 ("merge: avoid "safer crlf" during recording of
merge results", 2016-07-08) was not a faithful rewrite.

So I agree that your patch is the right fix; using the old message
lost by mistake in 1335d76e45 may have made it more clear that this
is a fix for a misconversion in that commit, though.

In any case, this does not seem like a new regression (1/2 applied
on v2.10.0 dies the same way), so I am inclined to queue these two
but not ship in the upcoming release for now.

Thanks.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/2] Avoid a segmentation fault with renaming merges
  2016-11-28 18:42       ` Junio C Hamano
@ 2016-11-28 18:59         ` Junio C Hamano
  0 siblings, 0 replies; 11+ messages in thread
From: Junio C Hamano @ 2016-11-28 18:59 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, Markus Klein

Junio C Hamano <gitster@pobox.com> writes:

> Looking at the commit you blamed, what happened in this case before
> that change was that
>
>  (1) make_cache_entry() would have called refresh_cache_entry() with
>      CE_MATCH_REFRESH and returned a NULL;
>
>  (2) merge-recursive.c::add_cacheinfo() noticed NULL and did
>
>      return error(_("addinfo_cache failed for path '%s'"), path)
>
> But the updated code forgot that refresh_cache_entry() could return
> NULL.  So 1335d76e45 ("merge: avoid "safer crlf" during recording of
> merge results", 2016-07-08) was not a faithful rewrite.

I'd tentatively queue the two patches fro you on top of the
jc/renormalize-merge-kill-safer-crlf topic that ends at 1335d76e45
("merge: avoid "safer crlf" during recording of merge results",
2016-07-08).  The real "fix" became like this with the above
analysis.  Semantic adjustment "error(" -> "err(o," between the old
codebase and the current one will be handled when merging.

Thanks for catching my incorrect refactoring.

-- >8 --
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Sat, 26 Nov 2016 13:48:06 +0100
Subject: [PATCH] merge-recursive: handle NULL in add_cacheinfo() correctly

1335d76e45 ("merge: avoid "safer crlf" during recording of merge
results", 2016-07-08) tried to split make_cache_entry() call made
with CE_MATCH_REFRESH into a call to make_cache_entry() without one,
followed by a call to add_cache_entry(), refresh_cache() and another
add_cache_entry() as needed.  However the conversion was botched in
that it forgot that refresh_cache() can return NULL, which was handled
correctly in make_cache_entry() but not in the updated code.

This fixes https://github.com/git-for-windows/git/issues/952

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 merge-recursive.c             | 2 ++
 t/t3501-revert-cherry-pick.sh | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/merge-recursive.c b/merge-recursive.c
index de37e5153c..56385d4c01 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -213,6 +213,8 @@ static int add_cacheinfo(unsigned int mode, const unsigned char *sha1,
 		struct cache_entry *nce;
 
 		nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
+		if (!nce)
+			return error(_("addinfo_cache failed for path '%s'"), path);
 		if (nce != ce)
 			ret = add_cache_entry(nce, options);
 	}
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 5bef564ff1..22970d2223 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -141,7 +141,7 @@ test_expect_success 'cherry-pick "-" works with arguments' '
 	test_cmp expect actual
 '
 
-test_expect_failure 'cherry-pick works with dirty renamed file' '
+test_expect_success 'cherry-pick works with dirty renamed file' '
 	test_commit to-rename &&
 	git checkout -b unrelated &&
 	test_commit unrelated &&
-- 
2.11.0-rc3-172-gc8d0e450d3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-11-28 19:02 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-25 16:36 [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
2016-11-25 16:36 ` [PATCH 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
2016-11-26 12:47   ` Johannes Schindelin
2016-11-25 16:36 ` [PATCH 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
2016-11-25 16:41 ` [PATCH 0/2] Fix segmentation fault with cherry-pick Johannes Schindelin
2016-11-26 12:47 ` [PATCH v2 " Johannes Schindelin
2016-11-26 12:48   ` [PATCH v2 1/2] cherry-pick: demonstrate a segmentation fault Johannes Schindelin
2016-11-26 12:48   ` [PATCH v2 2/2] Avoid a segmentation fault with renaming merges Johannes Schindelin
2016-11-26 12:53     ` Johannes Schindelin
2016-11-28 18:42       ` Junio C Hamano
2016-11-28 18:59         ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).