]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-p4: add P4CommandException to report errors talking to Perforce
authorLuke Diamand <luke@diamand.org>
Wed, 29 Jan 2020 11:12:42 +0000 (11:12 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 30 Jan 2020 20:20:57 +0000 (12:20 -0800)
Currently when there is a P4 error, git-p4 calls die() which just exits.

This then leaves the git-fast-import process still running, and can even
leave p4 itself still running.

As a result, git-p4 fails to exit cleanly. This is a particular problem
for people running the unit tests in regression.

Use this exception to report errors upwards, cleaning up as the error
propagates.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-p4.py

index 23724defe875094135e8441701f94a868769865a..df2a95662228054c0689716fd09acb6c277de862 100755 (executable)
--- a/git-p4.py
+++ b/git-p4.py
@@ -618,6 +618,14 @@ class P4RequestSizeException(P4ServerException):
         super(P4RequestSizeException, self).__init__(exit_code, p4_result)
         self.limit = limit
 
+class P4CommandException(P4Exception):
+    """ Something went wrong calling p4 which means we have to give up """
+    def __init__(self, msg):
+        self.msg = msg
+
+    def __str__(self):
+        return self.msg
+
 def isModeExecChanged(src_mode, dst_mode):
     return isModeExec(src_mode) != isModeExec(dst_mode)