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

[PATCHv2 1/2] t5520-pull: Add testcases showing spurious conflicts from git pull --rebase

From
Elijah Newren <newren@gmail.com>
Date
Aug 8, 2010, 19:04 UTC
Message-ID
<1281294286-27709-2-git-send-email-newren@gmail.com>
In-Reply-To
<1281294286-27709-1-git-send-email-newren@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
 t/t5520-pull.sh |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index 319e389..1624dd3 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -160,4 +160,62 @@ test_expect_success 'pull --rebase works on branch yet to be born' '
 	test_cmp expect actual
 '
 
+test_expect_success 'setup for detecting upstreamed changes' '
+	mkdir src &&
+	(cd src &&
+	 git init &&
+	 for i in $(seq 1 10); do echo $i; done > stuff &&
+	 git add stuff &&
+	 git commit -m "Initial revision"
+	) &&
+	git clone src dst &&
+	(cd src &&
+	 perl -pi -e s/5/43/ stuff &&
+	 git commit -a -m "5->43" &&
+	 perl -pi -e s/6/42/ stuff &&
+	 git commit -a -m "Make it bigger" &&
+	 correct=$(git rev-parse HEAD)
+	) &&
+	(cd dst &&
+	 perl -pi -e s/5/43/ stuff &&
+	 git commit -a -m "Independent discovery of 5->43"
+	)
+'
+
+test_expect_failure 'git pull --rebase detects upstreamed changes' '
+	(cd dst &&
+	 git pull --rebase &&
+	 test -z "$(git ls-files -u)"
+	)
+'
+
+test_expect_success 'setup for avoiding reapplying old patches' '
+	(cd dst &&
+	 (git rebase --abort || true) &&
+	 git reset --hard origin/master
+	) &&
+	git clone --bare src src-replace.git &&
+	rm -rf src &&
+	mv src-replace.git src &&
+	(cd dst &&
+	 perl -pi -e s/2/22/ stuff &&
+	 git commit -a -m "Change 2" &&
+	 perl -pi -e s/3/33/ stuff &&
+	 git commit -a -m "Change 3" &&
+	 perl -pi -e s/4/44/ stuff &&
+	 git commit -a -m "Change 4" &&
+	 git push &&
+
+	 perl -pi -e s/44/55/ stuff &&
+	 git commit --amend -a -m "Modified Change 4"
+	)
+'
+
+test_expect_failure 'git pull --rebase does not reapply old patches' '
+	(cd dst &&
+	 (git pull --rebase || true) &&
+	 test 1 = $(find .git/rebase-apply -name "000*" | wc -l)
+	)
+'
+
 test_done
-- 
1.7.2.1
Previous: Elijah NewrenNext: Ævar Arnfjörð Bjarmason
Message 2 of 8 in “[PATCHv2 0/2] Fix spurious conflicts with pull --rebase”
  1. Elijah NewrenAug 8, 2010
  2. 1/2 t5520-pull: Add testcases showing spurious conflicts from git pull --rebaseElijah Newren, Aug 8, 2010
  3. Ævar Arnfjörð BjarmasonAug 8, 2010
  4. Elijah NewrenAug 8, 2010
  5. Ævar Arnfjörð BjarmasonAug 8, 2010
  6. Johannes SixtAug 8, 2010
  7. Jonathan NiederAug 8, 2010
  8. 2/2 pull --rebase: Avoid spurious conflicts and reapplying unnecessary patchesElijah Newren, Aug 8, 2010

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.