threads / bug / 32884

[BUG/TEST 2/2] t3501: Expose addinfo_cache error message in cherry-pick

Subject: [BUG/TEST 2/2] t3501: Expose addinfo_cache error message in cherry-pick

## tl;dr

4 messages between Feb 12, 2013 and Mar 4, 2013.

replies: 3people: 2as markdown or json

Stephen Boyd· Feb 12, 2013, 04:27 UTC · lore

[BUG/TEST 0/2] bugs with cherry-pick renames

I ran into these bugs the other day and didn't have time to investigate further. So I wrote test cases for them instead.

Stephen Boyd (2):
  t3501: Expose bug with cherry-pick into dirty trees w/ renames
  t3501: Expose addinfo_cache error message in cherry-pick
 t/t3501-revert-cherry-pick.sh | 60 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
Stephen Boyd· Feb 12, 2013, 04:27 UTC · re: Stephen Boyd · lore

[BUG/TEST 1/2] t3501: Expose bug with cherry-pick into dirty trees w/ renames

I encountered this bug while doing some cherry-picking into a dirty tree. In this case, the working tree was dirty with some changes to a file that had been renamed. The change I wanted to cherry-pick was made along another branch before the rename and it matched a subset of my working tree modulo the file rename. When I cherry-picked the change from the other branch without the rename to my current branch with the rename, the change applied cleanly and the dirty bits were committed but the other dirty bits in the file were lost. Make this into a test to expose this bug.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 t/t3501-revert-cherry-pick.sh | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index 6f489e2..eef4d8c 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -109,4 +109,32 @@ test_expect_success 'chery-pick on unborn branch' '
 	! test_cmp_rev initial HEAD
 '
 
+test_expect_success 'cherry-pick on dirty rename should stay dirty' '
+	git checkout initial &&
+
+	for l in b c d e f g h i j k l m n o
+	do
+		echo $l$l$l$l$l$l$l$l$l
+	done >oops &&
+
+	test_tick &&
+	git add oops &&
+	git commit -m drop &&
+	git tag drop &&
+
+	git checkout initial &&
+	test_tick &&
+	git mv oops spoo &&
+	git commit -m rename3 &&
+	git tag rename3 &&
+
+	for l in b c d e f g h i j k m n o
+	do
+		echo $l$l$l$l$l$l$l$l$l
+	done >spoo &&
+
+	git cherry-pick drop &&
+	! git diff --quiet
+'
+
 test_done
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
Stephen Boyd· Feb 12, 2013, 04:27 UTC · re: Stephen Boyd · lore

I encountered a mysterious error message while doing some cherry-picking into a dirty tree. In this case, the working tree was dirty with changes to two files that had been renamed, we'll call them 'file and 'otherfile'. The change I wanted to cherry-pick was made along a branch before the rename to 'file'. When I cherry-picked the change from the other branch without the rename to my current branch with the rename, the change applied cleanly and the dirty bits were committed but a mysterious error message was printed indicating something went wrong with the file that was still dirty after the cherry-pick.

	error: addinfo_cache failed for path 'otherfile'

I suspect this error message shouldn't be printed, so recreate the problem in t3501 so that it can be fixed.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 t/t3501-revert-cherry-pick.sh | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
index eef4d8c..522a9fd 100755
--- a/t/t3501-revert-cherry-pick.sh
+++ b/t/t3501-revert-cherry-pick.sh
@@ -137,4 +137,36 @@ test_expect_success 'cherry-pick on dirty rename should stay dirty' '
 	! git diff --quiet
 '
 
+test_expect_success 'cherry-pick on dirty rename should not complain' '
+	git checkout initial &&
+
+	test_commit file1
+
+	for l in b c d e f g h i j k l m n o
+	do
+		echo $l$l$l$l$l$l$l$l$l
+	done >oops &&
+
+	test_tick &&
+	git add oops &&
+	git commit -m drop2 &&
+	git tag drop2 &&
+
+	git checkout file1 &&
+	test_tick &&
+	git mv oops spoo &&
+	git mv file1.t file2.t &&
+	git commit -m rename4 &&
+	git tag rename4 &&
+
+	echo file2 > file2.t &&
+	for l in b c d e f g h i j k m n o
+	do
+		echo $l$l$l$l$l$l$l$l$l
+	done >spoo &&
+
+	git cherry-pick drop2 2> errors &&
+	! test -s errors
+'
+
 test_done
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
Stephen Boyd· Mar 4, 2013, 18:48 UTC · re: Stephen Boyd · lore

Re: [BUG/TEST 0/2] bugs with cherry-pick renames

On 02/11/13 20:27, Stephen Boyd wrote:
Show 10 quoted lines
> I ran into these bugs the other day and didn't have time to 
> investigate further. So I wrote test cases for them instead.
>
> Stephen Boyd (2):
>   t3501: Expose bug with cherry-pick into dirty trees w/ renames
>   t3501: Expose addinfo_cache error message in cherry-pick
>
>  t/t3501-revert-cherry-pick.sh | 60 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>
Any comments? Anyone else running into these bugs?

← back to recent threads