about summary refs log tree commit diff
path: root/third_party/git/t/t3418-rebase-continue.sh
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-09-21T10·03+0300
committerVincent Ambo <mail@tazj.in>2021-09-21T11·29+0300
commit43b1791ec601732ac31195df96781a848360a9ac (patch)
treedaae8d638343295d2f1f7da955e556ef4c958864 /third_party/git/t/t3418-rebase-continue.sh
parent2d8e7dc9d9c38127ec4ebd13aee8e8f586a43318 (diff)
chore(3p/git): Unvendor git and track patches instead r/2903
This was vendored a long time ago under the expectation that keeping
it in sync with cgit would be easier this way, but it has proven not
to be a big issue.

On the other hand, a vendored copy of git is an annoying maintenance
burden. It is much easier to rebase the single (dottime) patch that we
have.

This removes the vendored copy of git and instead passes the git
source code to cgit via `pkgs.srcOnly`, which includes the applied
patch so that cgit can continue rendering dottime.

Change-Id: If31f62dea7ce688fd1b9050204e9378019775f2b
Diffstat (limited to 'third_party/git/t/t3418-rebase-continue.sh')
-rwxr-xr-xthird_party/git/t/t3418-rebase-continue.sh290
1 files changed, 0 insertions, 290 deletions
diff --git a/third_party/git/t/t3418-rebase-continue.sh b/third_party/git/t/t3418-rebase-continue.sh
deleted file mode 100755
index 7a2da972fd37..000000000000
--- a/third_party/git/t/t3418-rebase-continue.sh
+++ /dev/null
@@ -1,290 +0,0 @@
-#!/bin/sh
-
-test_description='git rebase --continue tests'
-
-. ./test-lib.sh
-
-. "$TEST_DIRECTORY"/lib-rebase.sh
-
-set_fake_editor
-
-test_expect_success 'setup' '
-	test_commit "commit-new-file-F1" F1 1 &&
-	test_commit "commit-new-file-F2" F2 2 &&
-
-	git checkout -b topic HEAD^ &&
-	test_commit "commit-new-file-F2-on-topic-branch" F2 22 &&
-
-	git checkout master
-'
-
-test_expect_success 'interactive rebase --continue works with touched file' '
-	rm -fr .git/rebase-* &&
-	git reset --hard &&
-	git checkout master &&
-
-	FAKE_LINES="edit 1" git rebase -i HEAD^ &&
-	test-tool chmtime =-60 F1 &&
-	git rebase --continue
-'
-
-test_expect_success 'non-interactive rebase --continue works with touched file' '
-	rm -fr .git/rebase-* &&
-	git reset --hard &&
-	git checkout master &&
-
-	test_must_fail git rebase --onto master master topic &&
-	echo "Resolved" >F2 &&
-	git add F2 &&
-	test-tool chmtime =-60 F1 &&
-	git rebase --continue
-'
-
-test_expect_success 'rebase --continue can not be used with other options' '
-	test_must_fail git rebase -v --continue &&
-	test_must_fail git rebase --continue -v
-'
-
-test_expect_success 'rebase --continue remembers merge strategy and options' '
-	rm -fr .git/rebase-* &&
-	git reset --hard commit-new-file-F2-on-topic-branch &&
-	test_commit "commit-new-file-F3-on-topic-branch" F3 32 &&
-	test_when_finished "rm -fr test-bin funny.was.run" &&
-	mkdir test-bin &&
-	cat >test-bin/git-merge-funny <<-EOF &&
-	#!$SHELL_PATH
-	case "\$1" in --opt) ;; *) exit 2 ;; esac
-	shift &&
-	>funny.was.run &&
-	exec git merge-recursive "\$@"
-	EOF
-	chmod +x test-bin/git-merge-funny &&
-	(
-		PATH=./test-bin:$PATH &&
-		test_must_fail git rebase -s funny -Xopt master topic
-	) &&
-	test -f funny.was.run &&
-	rm funny.was.run &&
-	echo "Resolved" >F2 &&
-	git add F2 &&
-	(
-		PATH=./test-bin:$PATH &&
-		git rebase --continue
-	) &&
-	test -f funny.was.run
-'
-
-test_expect_success 'rebase -i --continue handles merge strategy and options' '
-	rm -fr .git/rebase-* &&
-	git reset --hard commit-new-file-F2-on-topic-branch &&
-	test_commit "commit-new-file-F3-on-topic-branch-for-dash-i" F3 32 &&
-	test_when_finished "rm -fr test-bin funny.was.run funny.args" &&
-	mkdir test-bin &&
-	cat >test-bin/git-merge-funny <<-EOF &&
-	#!$SHELL_PATH
-	echo "\$@" >>funny.args
-	case "\$1" in --opt) ;; *) exit 2 ;; esac
-	case "\$2" in --foo) ;; *) exit 2 ;; esac
-	case "\$4" in --) ;; *) exit 2 ;; esac
-	shift 2 &&
-	>funny.was.run &&
-	exec git merge-recursive "\$@"
-	EOF
-	chmod +x test-bin/git-merge-funny &&
-	(
-		PATH=./test-bin:$PATH &&
-		test_must_fail git rebase -i -s funny -Xopt -Xfoo master topic
-	) &&
-	test -f funny.was.run &&
-	rm funny.was.run &&
-	echo "Resolved" >F2 &&
-	git add F2 &&
-	(
-		PATH=./test-bin:$PATH &&
-		git rebase --continue
-	) &&
-	test -f funny.was.run
-'
-
-test_expect_success REBASE_P 'rebase passes merge strategy options correctly' '
-	rm -fr .git/rebase-* &&
-	git reset --hard commit-new-file-F3-on-topic-branch &&
-	test_commit theirs-to-merge &&
-	git reset --hard HEAD^ &&
-	test_commit some-commit &&
-	test_tick &&
-	git merge --no-ff theirs-to-merge &&
-	FAKE_LINES="1 edit 2 3" git rebase -i -f -p -m \
-		-s recursive --strategy-option=theirs HEAD~2 &&
-	test_commit force-change &&
-	git rebase --continue
-'
-
-test_expect_success 'rebase -r passes merge strategy options correctly' '
-	rm -fr .git/rebase-* &&
-	git reset --hard commit-new-file-F3-on-topic-branch &&
-	test_commit merge-theirs &&
-	git reset --hard HEAD^ &&
-	test_commit some-other-commit &&
-	test_tick &&
-	git merge --no-ff merge-theirs &&
-	FAKE_LINES="1 3 edit 4 5 7 8 9" git rebase -i -f -r -m \
-		-s recursive --strategy-option=theirs HEAD~2 &&
-	test_commit force-change-ours &&
-	git rebase --continue
-'
-
-test_expect_success '--skip after failed fixup cleans commit message' '
-	test_when_finished "test_might_fail git rebase --abort" &&
-	git checkout -b with-conflicting-fixup &&
-	test_commit wants-fixup &&
-	test_commit "fixup! wants-fixup" wants-fixup.t 1 wants-fixup-1 &&
-	test_commit "fixup! wants-fixup" wants-fixup.t 2 wants-fixup-2 &&
-	test_commit "fixup! wants-fixup" wants-fixup.t 3 wants-fixup-3 &&
-	test_must_fail env FAKE_LINES="1 fixup 2 squash 4" \
-		git rebase -i HEAD~4 &&
-
-	: now there is a conflict, and comments in the commit message &&
-	git show HEAD >out &&
-	grep "fixup! wants-fixup" out &&
-
-	: skip and continue &&
-	echo "cp \"\$1\" .git/copy.txt" | write_script copy-editor.sh &&
-	(test_set_editor "$PWD/copy-editor.sh" && git rebase --skip) &&
-
-	: the user should not have had to edit the commit message &&
-	test_path_is_missing .git/copy.txt &&
-
-	: now the comments in the commit message should have been cleaned up &&
-	git show HEAD >out &&
-	! grep "fixup! wants-fixup" out &&
-
-	: now, let us ensure that "squash" is handled correctly &&
-	git reset --hard wants-fixup-3 &&
-	test_must_fail env FAKE_LINES="1 squash 4 squash 2 squash 4" \
-		git rebase -i HEAD~4 &&
-
-	: the first squash failed, but there are two more in the chain &&
-	(test_set_editor "$PWD/copy-editor.sh" &&
-	 test_must_fail git rebase --skip) &&
-
-	: not the final squash, no need to edit the commit message &&
-	test_path_is_missing .git/copy.txt &&
-
-	: The first squash was skipped, therefore: &&
-	git show HEAD >out &&
-	test_i18ngrep "# This is a combination of 2 commits" out &&
-	test_i18ngrep "# This is the commit message #2:" out &&
-
-	(test_set_editor "$PWD/copy-editor.sh" && git rebase --skip) &&
-	git show HEAD >out &&
-	test_i18ngrep ! "# This is a combination" out &&
-
-	: Final squash failed, but there was still a squash &&
-	test_i18ngrep "# This is a combination of 2 commits" .git/copy.txt &&
-	test_i18ngrep "# This is the commit message #2:" .git/copy.txt
-'
-
-test_expect_success 'setup rerere database' '
-	rm -fr .git/rebase-* &&
-	git reset --hard commit-new-file-F3-on-topic-branch &&
-	git checkout master &&
-	test_commit "commit-new-file-F3" F3 3 &&
-	test_config rerere.enabled true &&
-	git update-ref refs/heads/topic commit-new-file-F3-on-topic-branch &&
-	test_must_fail git rebase -m master topic &&
-	echo "Resolved" >F2 &&
-	cp F2 expected-F2 &&
-	git add F2 &&
-	test_must_fail git rebase --continue &&
-	echo "Resolved" >F3 &&
-	cp F3 expected-F3 &&
-	git add F3 &&
-	git rebase --continue &&
-	git reset --hard topic@{1}
-'
-
-prepare () {
-	rm -fr .git/rebase-* &&
-	git reset --hard commit-new-file-F3-on-topic-branch &&
-	git checkout master &&
-	test_config rerere.enabled true
-}
-
-test_rerere_autoupdate () {
-	action=$1 &&
-	test_expect_success "rebase $action --continue remembers --rerere-autoupdate" '
-		prepare &&
-		test_must_fail git rebase $action --rerere-autoupdate master topic &&
-		test_cmp expected-F2 F2 &&
-		git diff-files --quiet &&
-		test_must_fail git rebase --continue &&
-		test_cmp expected-F3 F3 &&
-		git diff-files --quiet &&
-		git rebase --continue
-	'
-
-	test_expect_success "rebase $action --continue honors rerere.autoUpdate" '
-		prepare &&
-		test_config rerere.autoupdate true &&
-		test_must_fail git rebase $action master topic &&
-		test_cmp expected-F2 F2 &&
-		git diff-files --quiet &&
-		test_must_fail git rebase --continue &&
-		test_cmp expected-F3 F3 &&
-		git diff-files --quiet &&
-		git rebase --continue
-	'
-
-	test_expect_success "rebase $action --continue remembers --no-rerere-autoupdate" '
-		prepare &&
-		test_config rerere.autoupdate true &&
-		test_must_fail git rebase $action --no-rerere-autoupdate master topic &&
-		test_cmp expected-F2 F2 &&
-		test_must_fail git diff-files --quiet &&
-		git add F2 &&
-		test_must_fail git rebase --continue &&
-		test_cmp expected-F3 F3 &&
-		test_must_fail git diff-files --quiet &&
-		git add F3 &&
-		git rebase --continue
-	'
-}
-
-test_rerere_autoupdate
-test_rerere_autoupdate -m
-GIT_SEQUENCE_EDITOR=: && export GIT_SEQUENCE_EDITOR
-test_rerere_autoupdate -i
-test_have_prereq !REBASE_P || test_rerere_autoupdate --preserve-merges
-unset GIT_SEQUENCE_EDITOR
-
-test_expect_success 'the todo command "break" works' '
-	rm -f execed &&
-	FAKE_LINES="break b exec_>execed" git rebase -i HEAD &&
-	test_path_is_missing execed &&
-	git rebase --continue &&
-	test_path_is_missing execed &&
-	git rebase --continue &&
-	test_path_is_file execed
-'
-
-test_expect_success '--reschedule-failed-exec' '
-	test_when_finished "git rebase --abort" &&
-	test_must_fail git rebase -x false --reschedule-failed-exec HEAD^ &&
-	grep "^exec false" .git/rebase-merge/git-rebase-todo &&
-	git rebase --abort &&
-	test_must_fail git -c rebase.rescheduleFailedExec=true \
-		rebase -x false HEAD^ 2>err &&
-	grep "^exec false" .git/rebase-merge/git-rebase-todo &&
-	test_i18ngrep "has been rescheduled" err
-'
-
-test_expect_success 'rebase.reschedulefailedexec only affects `rebase -i`' '
-	test_config rebase.reschedulefailedexec true &&
-	test_must_fail git rebase -x false HEAD^ &&
-	grep "^exec false" .git/rebase-merge/git-rebase-todo &&
-	git rebase --abort &&
-	git rebase HEAD^
-'
-
-test_done