diff options
Diffstat (limited to 'third_party/git/t/t1004-read-tree-m-u-wf.sh')
-rwxr-xr-x | third_party/git/t/t1004-read-tree-m-u-wf.sh | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/third_party/git/t/t1004-read-tree-m-u-wf.sh b/third_party/git/t/t1004-read-tree-m-u-wf.sh deleted file mode 100755 index c13578a635fb..000000000000 --- a/third_party/git/t/t1004-read-tree-m-u-wf.sh +++ /dev/null @@ -1,239 +0,0 @@ -#!/bin/sh - -test_description='read-tree -m -u checks working tree files' - -. ./test-lib.sh -. "$TEST_DIRECTORY"/lib-read-tree.sh - -# two-tree test - -test_expect_success 'two-way setup' ' - - mkdir subdir && - echo >file1 file one && - echo >file2 file two && - echo >subdir/file1 file one in subdirectory && - echo >subdir/file2 file two in subdirectory && - git update-index --add file1 file2 subdir/file1 subdir/file2 && - git commit -m initial && - - git branch side && - git tag -f branch-point && - - echo file2 is not tracked on the master anymore && - rm -f file2 subdir/file2 && - git update-index --remove file2 subdir/file2 && - git commit -a -m "master removes file2 and subdir/file2" -' - -test_expect_success 'two-way not clobbering' ' - - echo >file2 master creates untracked file2 && - echo >subdir/file2 master creates untracked subdir/file2 && - if err=$(read_tree_u_must_succeed -m -u master side 2>&1) - then - echo should have complained - false - else - echo "happy to see $err" - fi -' - -echo file2 >.gitignore - -test_expect_success 'two-way with incorrect --exclude-per-directory (1)' ' - - if err=$(read_tree_u_must_succeed -m --exclude-per-directory=.gitignore master side 2>&1) - then - echo should have complained - false - else - echo "happy to see $err" - fi -' - -test_expect_success 'two-way with incorrect --exclude-per-directory (2)' ' - - if err=$(read_tree_u_must_succeed -m -u --exclude-per-directory=foo --exclude-per-directory=.gitignore master side 2>&1) - then - echo should have complained - false - else - echo "happy to see $err" - fi -' - -test_expect_success 'two-way clobbering a ignored file' ' - - read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore master side -' - -rm -f .gitignore - -# three-tree test - -test_expect_success 'three-way not complaining on an untracked path in both' ' - - rm -f file2 subdir/file2 && - git checkout side && - echo >file3 file three && - echo >subdir/file3 file three && - git update-index --add file3 subdir/file3 && - git commit -a -m "side adds file3 and removes file2" && - - git checkout master && - echo >file2 file two is untracked on the master side && - echo >subdir/file2 file two is untracked on the master side && - - read_tree_u_must_succeed -m -u branch-point master side -' - -test_expect_success 'three-way not clobbering a working tree file' ' - - git reset --hard && - rm -f file2 subdir/file2 file3 subdir/file3 && - git checkout master && - echo >file3 file three created in master, untracked && - echo >subdir/file3 file three created in master, untracked && - if err=$(read_tree_u_must_succeed -m -u branch-point master side 2>&1) - then - echo should have complained - false - else - echo "happy to see $err" - fi -' - -echo >.gitignore file3 - -test_expect_success 'three-way not complaining on an untracked file' ' - - git reset --hard && - rm -f file2 subdir/file2 file3 subdir/file3 && - git checkout master && - echo >file3 file three created in master, untracked && - echo >subdir/file3 file three created in master, untracked && - - read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore branch-point master side -' - -test_expect_success '3-way not overwriting local changes (setup)' ' - - git reset --hard && - git checkout -b side-a branch-point && - echo >>file1 "new line to be kept in the merge result" && - git commit -a -m "side-a changes file1" && - git checkout -b side-b branch-point && - echo >>file2 "new line to be kept in the merge result" && - git commit -a -m "side-b changes file2" && - git checkout side-a - -' - -test_expect_success '3-way not overwriting local changes (our side)' ' - - # At this point, file1 from side-a should be kept as side-b - # did not touch it. - - git reset --hard && - - echo >>file1 "local changes" && - read_tree_u_must_succeed -m -u branch-point side-a side-b && - grep "new line to be kept" file1 && - grep "local changes" file1 - -' - -test_expect_success '3-way not overwriting local changes (their side)' ' - - # At this point, file2 from side-b should be taken as side-a - # did not touch it. - - git reset --hard && - - echo >>file2 "local changes" && - read_tree_u_must_fail -m -u branch-point side-a side-b && - ! grep "new line to be kept" file2 && - grep "local changes" file2 - -' - -test_expect_success 'funny symlink in work tree' ' - - git reset --hard && - git checkout -b sym-b side-b && - mkdir -p a && - >a/b && - git add a/b && - git commit -m "side adds a/b" && - - rm -fr a && - git checkout -b sym-a side-a && - mkdir -p a && - test_ln_s_add ../b a/b && - git commit -m "we add a/b" && - - read_tree_u_must_succeed -m -u sym-a sym-a sym-b - -' - -test_expect_success SANITY 'funny symlink in work tree, un-unlink-able' ' - - test_when_finished "chmod u+w a 2>/dev/null; rm -fr a b" && - - rm -fr a b && - git reset --hard && - - git checkout sym-a && - chmod a-w a && - test_must_fail git read-tree -m -u sym-a sym-a sym-b - -' - -test_expect_success 'D/F setup' ' - - git reset --hard && - - git checkout side-a && - rm -f subdir/file2 && - mkdir subdir/file2 && - echo qfwfq >subdir/file2/another && - git add subdir/file2/another && - test_tick && - git commit -m "side-a changes file2 to directory" - -' - -test_expect_success 'D/F' ' - - git checkout side-b && - read_tree_u_must_succeed -m -u branch-point side-b side-a && - git ls-files -u >actual && - ( - a=$(git rev-parse branch-point:subdir/file2) && - b=$(git rev-parse side-a:subdir/file2/another) && - echo "100644 $a 1 subdir/file2" && - echo "100644 $a 2 subdir/file2" && - echo "100644 $b 3 subdir/file2/another" - ) >expect && - test_cmp expect actual - -' - -test_expect_success 'D/F resolve' ' - - git reset --hard && - git checkout side-b && - git merge-resolve branch-point -- side-b side-a - -' - -test_expect_success 'D/F recursive' ' - - git reset --hard && - git checkout side-b && - git merge-recursive branch-point -- side-b side-a - -' - -test_done |