rebase: implement --[no-]autostash and rebase.autostash
[gitweb.git] / t / t9814-git-p4-rename.sh
index 84fffb3142f9a402f07ce1682f0d5afa3f85955c..be802e0e16f165f92d3526572a483d1287b19ef9 100755 (executable)
@@ -77,16 +77,16 @@ test_expect_success 'detect renames' '
                git commit -a -m "Rename file1 to file4" &&
                git diff-tree -r -M HEAD &&
                git p4 submit &&
-               p4 filelog //depot/file4 &&
-               p4 filelog //depot/file4 | test_must_fail grep -q "branch from" &&
+               p4 filelog //depot/file4 >filelog &&
+               ! grep " from //depot" filelog &&
 
                git mv file4 file5 &&
                git commit -a -m "Rename file4 to file5" &&
                git diff-tree -r -M HEAD &&
                git config git-p4.detectRenames true &&
                git p4 submit &&
-               p4 filelog //depot/file5 &&
-               p4 filelog //depot/file5 | grep -q "branch from //depot/file4" &&
+               p4 filelog //depot/file5 >filelog &&
+               grep " from //depot/file4" filelog &&
 
                git mv file5 file6 &&
                echo update >>file6 &&
@@ -97,8 +97,8 @@ test_expect_success 'detect renames' '
                test -n "$level" && test "$level" -gt 0 && test "$level" -lt 98 &&
                git config git-p4.detectRenames $(($level + 2)) &&
                git p4 submit &&
-               p4 filelog //depot/file6 &&
-               p4 filelog //depot/file6 | test_must_fail grep -q "branch from" &&
+               p4 filelog //depot/file6 >filelog &&
+               ! grep " from //depot" filelog &&
 
                git mv file6 file7 &&
                echo update >>file7 &&
@@ -109,8 +109,8 @@ test_expect_success 'detect renames' '
                test -n "$level" && test "$level" -gt 2 && test "$level" -lt 100 &&
                git config git-p4.detectRenames $(($level - 2)) &&
                git p4 submit &&
-               p4 filelog //depot/file7 &&
-               p4 filelog //depot/file7 | grep -q "branch from //depot/file6"
+               p4 filelog //depot/file7 >filelog &&
+               grep " from //depot/file6" filelog
        )
 '
 
@@ -199,6 +199,41 @@ test_expect_success 'detect copies' '
        )
 '
 
+# See if configurables can be set, and in particular if the run.move.allow
+# variable exists, which allows admins to disable the "p4 move" command.
+test_expect_success 'p4 configure command and run.move.allow are available' '
+       p4 configure show run.move.allow >out ; retval=$? &&
+       test $retval = 0 &&
+       {
+               egrep ^run.move.allow: out &&
+               test_set_prereq P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW ||
+               true
+       } || true
+'
+
+# If move can be disabled, turn it off and test p4 move handling
+test_expect_success P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW \
+                   'do not use p4 move when administratively disabled' '
+       test_when_finished "p4 configure set run.move.allow=1" &&
+       p4 configure set run.move.allow=0 &&
+       (
+               cd "$cli" &&
+               echo move-disallow-file >move-disallow-file &&
+               p4 add move-disallow-file &&
+               p4 submit -d "add move-disallow-file"
+       ) &&
+       test_when_finished cleanup_git &&
+       git p4 clone --dest="$git" //depot &&
+       (
+               cd "$git" &&
+               git config git-p4.skipSubmitEdit true &&
+               git config git-p4.detectRenames true &&
+               git mv move-disallow-file move-disallow-file-moved &&
+               git commit -m "move move-disallow-file" &&
+               git p4 submit
+       )
+'
+
 test_expect_success 'kill p4d' '
        kill_p4d
 '