diff options
Diffstat (limited to 'third_party/git/t/t2030-unresolve-info.sh')
-rwxr-xr-x | third_party/git/t/t2030-unresolve-info.sh | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/third_party/git/t/t2030-unresolve-info.sh b/third_party/git/t/t2030-unresolve-info.sh deleted file mode 100755 index 309199bca272..000000000000 --- a/third_party/git/t/t2030-unresolve-info.sh +++ /dev/null @@ -1,195 +0,0 @@ -#!/bin/sh - -test_description='undoing resolution' - -. ./test-lib.sh - -check_resolve_undo () { - msg=$1 - shift - while case $# in - 0) break ;; - 1|2|3) die "Bug in check-resolve-undo test" ;; - esac - do - path=$1 - shift - for stage in 1 2 3 - do - sha1=$1 - shift - case "$sha1" in - '') continue ;; - esac - sha1=$(git rev-parse --verify "$sha1") - printf "100644 %s %s\t%s\n" $sha1 $stage $path - done - done >"$msg.expect" && - git ls-files --resolve-undo >"$msg.actual" && - test_cmp "$msg.expect" "$msg.actual" -} - -prime_resolve_undo () { - git reset --hard && - git checkout second^0 && - test_tick && - test_must_fail git merge third^0 && - echo merge does not leave anything && - check_resolve_undo empty && - echo different >fi/le && - git add fi/le && - echo resolving records && - check_resolve_undo recorded fi/le initial:fi/le second:fi/le third:fi/le -} - -test_expect_success setup ' - mkdir fi && - printf "a\0a" >binary && - git add binary && - test_commit initial fi/le first && - git branch side && - git branch another && - printf "a\0b" >binary && - git add binary && - test_commit second fi/le second && - git checkout side && - test_commit third fi/le third && - git branch add-add && - git checkout another && - test_commit fourth fi/le fourth && - git checkout add-add && - test_commit fifth add-differently && - git checkout master -' - -test_expect_success 'add records switch clears' ' - prime_resolve_undo && - test_tick && - git commit -m merged && - echo committing keeps && - check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le && - git checkout second^0 && - echo switching clears && - check_resolve_undo cleared -' - -test_expect_success 'rm records reset clears' ' - prime_resolve_undo && - test_tick && - git commit -m merged && - echo committing keeps && - check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le && - - echo merge clears upfront && - test_must_fail git merge fourth^0 && - check_resolve_undo nuked && - - git rm -f fi/le && - echo resolving records && - check_resolve_undo recorded fi/le initial:fi/le HEAD:fi/le fourth:fi/le && - - git reset --hard && - echo resetting discards && - check_resolve_undo discarded -' - -test_expect_success 'plumbing clears' ' - prime_resolve_undo && - test_tick && - git commit -m merged && - echo committing keeps && - check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le && - - echo plumbing clear && - git update-index --clear-resolve-undo && - check_resolve_undo cleared -' - -test_expect_success 'add records checkout -m undoes' ' - prime_resolve_undo && - git diff HEAD && - git checkout --conflict=merge fi/le && - echo checkout used the record and removed it && - check_resolve_undo removed && - echo the index and the work tree is unmerged again && - git diff >actual && - grep "^++<<<<<<<" actual -' - -test_expect_success 'unmerge with plumbing' ' - prime_resolve_undo && - git update-index --unresolve fi/le && - git ls-files -u >actual && - test_line_count = 3 actual -' - -test_expect_success 'rerere and rerere forget' ' - mkdir .git/rr-cache && - prime_resolve_undo && - echo record the resolution && - git rerere && - rerere_id=$(cd .git/rr-cache && echo */postimage) && - rerere_id=${rerere_id%/postimage} && - test -f .git/rr-cache/$rerere_id/postimage && - git checkout -m fi/le && - echo resurrect the conflict && - grep "^=======" fi/le && - echo reresolve the conflict && - git rerere && - test "z$(cat fi/le)" = zdifferent && - echo register the resolution again && - git add fi/le && - check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le && - test -z "$(git ls-files -u)" && - git rerere forget fi/le && - ! test -f .git/rr-cache/$rerere_id/postimage && - tr "\0" "\n" <.git/MERGE_RR >actual && - echo "$rerere_id fi/le" >expect && - test_cmp expect actual -' - -test_expect_success 'rerere and rerere forget (subdirectory)' ' - rm -fr .git/rr-cache && - mkdir .git/rr-cache && - prime_resolve_undo && - echo record the resolution && - (cd fi && git rerere) && - rerere_id=$(cd .git/rr-cache && echo */postimage) && - rerere_id=${rerere_id%/postimage} && - test -f .git/rr-cache/$rerere_id/postimage && - (cd fi && git checkout -m le) && - echo resurrect the conflict && - grep "^=======" fi/le && - echo reresolve the conflict && - (cd fi && git rerere) && - test "z$(cat fi/le)" = zdifferent && - echo register the resolution again && - (cd fi && git add le) && - check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le && - test -z "$(git ls-files -u)" && - (cd fi && git rerere forget le) && - ! test -f .git/rr-cache/$rerere_id/postimage && - tr "\0" "\n" <.git/MERGE_RR >actual && - echo "$rerere_id fi/le" >expect && - test_cmp expect actual -' - -test_expect_success 'rerere forget (binary)' ' - git checkout -f side && - printf "a\0c" >binary && - git commit -a -m binary && - test_must_fail git merge second && - git rerere forget binary -' - -test_expect_success 'rerere forget (add-add conflict)' ' - git checkout -f master && - echo master >add-differently && - git add add-differently && - git commit -m "add differently" && - test_must_fail git merge fifth && - git rerere forget add-differently 2>actual && - test_i18ngrep "no remembered" actual -' - -test_done |