cvsserver: Handle 'cvs login'
[gitweb.git] / t / t7001-mv.sh
index 322eaadc730dd022fffe92aba2cba717a3ebe7dc..344033249cc1ea3f7066d4d6007ade6cc1a2c5de 100755 (executable)
@@ -59,6 +59,10 @@ test_expect_success \
      git-diff-tree -r -M --name-status  HEAD^ HEAD | \
      grep -E "^R100.+path0/README.+path2/README"'
 
+test_expect_success \
+    'succeed when source is a prefix of destination' \
+    'git-mv path2/COPYING path2/COPYING-renamed'
+
 test_expect_success \
     'moving whole subdirectory into subdirectory' \
     'git-mv path2 path1'
@@ -74,4 +78,44 @@ test_expect_success \
      git-diff-tree -r -M --name-status  HEAD^ HEAD | \
      grep -E "^R100.+path2/README.+path1/path2/README"'
 
+test_expect_failure \
+    'do not move directory over existing directory' \
+    'mkdir path0 && mkdir path0/path2 && git-mv path2 path0'
+
+test_expect_success \
+    'move into "."' \
+    'git-mv path1/path2/ .'
+
+test_expect_success "Michael Cassar's test case" '
+       rm -fr .git papers partA &&
+       git init &&
+       mkdir -p papers/unsorted papers/all-papers partA &&
+       echo a > papers/unsorted/Thesis.pdf &&
+       echo b > partA/outline.txt &&
+       echo c > papers/unsorted/_another &&
+       git add papers partA &&
+       T1=`git write-tree` &&
+
+       git mv papers/unsorted/Thesis.pdf papers/all-papers/moo-blah.pdf &&
+
+       T=`git write-tree` &&
+       git ls-tree -r $T | grep partA/outline.txt || {
+               git ls-tree -r $T
+               (exit 1)
+       }
+'
+
+rm -fr papers partA path?
+
+test_expect_success "Sergey Vlasov's test case" '
+       rm -fr .git &&
+       git init &&
+       mkdir ab &&
+       date >ab.c &&
+       date >ab/d &&
+       git add ab.c ab &&
+       git commit -m 'initial' &&
+       git mv ab a
+'
+
 test_done