diff options
-rwxr-xr-x | git-p4.py | 12 | ||||
-rwxr-xr-x | t/t9807-git-p4-submit.sh | 7 |
2 files changed, 14 insertions, 5 deletions
@@ -135,8 +135,8 @@ def p4_system(cmd): def p4_integrate(src, dest): p4_system(["integrate", "-Dt", src, dest]) -def p4_sync(path): - p4_system(["sync", path]) +def p4_sync(f, *options): + p4_system(["sync"] + list(options) + [f]) def p4_add(f): p4_system(["add", f]) @@ -1361,12 +1361,18 @@ class P4Submit(Command, P4UserMap): self.oldWorkingDirectory = os.getcwd() # ensure the clientPath exists + new_client_dir = False if not os.path.exists(self.clientPath): + new_client_dir = True os.makedirs(self.clientPath) chdir(self.clientPath) print "Synchronizing p4 checkout..." - p4_sync("...") + if new_client_dir: + # old one was destroyed, and maybe nobody told p4 + p4_sync("...", "-f") + else: + p4_sync("...") self.check() commits = [] diff --git a/t/t9807-git-p4-submit.sh b/t/t9807-git-p4-submit.sh index 15417165e..2d7dc27f3 100755 --- a/t/t9807-git-p4-submit.sh +++ b/t/t9807-git-p4-submit.sh @@ -28,6 +28,11 @@ test_expect_success 'submit with no client dir' ' rm -rf "$cli" && git config git-p4.skipSubmitEdit true && git p4 submit + ) && + ( + cd "$cli" && + test_path_is_file file1 && + test_path_is_file file2 ) ' @@ -44,7 +49,6 @@ test_expect_success 'submit --origin' ' ) && ( cd "$cli" && - p4 sync && test_path_is_missing "file3.t" && test_path_is_file "file4.t" ) @@ -79,7 +83,6 @@ test_expect_success 'submit with master branch name from argv' ' ) && ( cd "$cli" && - p4 sync && test_path_is_file "file6.t" && test_path_is_missing "file7.t" ) |