Skip to content

Commit

Permalink
Bug fix: ensure P4 "err" is displayed when exception is raised.
Browse files Browse the repository at this point in the history
During "git p4 clone" if p4 process returns an error from the server,
it will store the message in the 'err' variable. Then it will send a
text command "die-now" to git-fast-import. However, git-fast-import
raises an exception: "fatal: Unsupported command: die-now" and err is
never displayed. This patch ensures that err is dispayed using
"finally:".

Signed-off-by: Fahad Alrashed <fahad@keylock.net>
  • Loading branch information
alrashedf committed May 7, 2024
1 parent 235986b commit 8d5b982
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions git-p4.py
Original file line number Diff line number Diff line change
Expand Up @@ -3253,17 +3253,19 @@ def streamP4FilesCb(self, marshalled):
if self.stream_have_file_info:
if "depotFile" in self.stream_file:
f = self.stream_file["depotFile"]
# force a failure in fast-import, else an empty
# commit will be made
self.gitStream.write("\n")
self.gitStream.write("die-now\n")
self.gitStream.close()
# ignore errors, but make sure it exits first
self.importProcess.wait()
if f:
die("Error from p4 print for %s: %s" % (f, err))
else:
die("Error from p4 print: %s" % err)
try:
# force a failure in fast-import, else an empty
# commit will be made
self.gitStream.write("\n")
self.gitStream.write("die-now\n")
self.gitStream.close()
# ignore errors, but make sure it exits first
self.importProcess.wait()
finally:
if f:
die("Error from p4 print for %s: %s" % (f, err))
else:
die("Error from p4 print: %s" % err)

if 'depotFile' in marshalled and self.stream_have_file_info:
# start of a new file - output the old one first
Expand Down

0 comments on commit 8d5b982

Please sign in to comment.