@@ -844,7 +844,6 @@ def __init__(self):
844844 ]
845845 self .description = "Submit changes from git to the perforce depot."
846846 self .usage += " [name of git branch to submit into perforce depot]"
847- self .interactive = True
848847 self .origin = ""
849848 self .detectRenames = False
850849 self .preserveUser = gitConfig ("git-p4.preserveUser" ).lower () == "true"
@@ -1209,86 +1208,77 @@ def applyCommit(self, id):
12091208
12101209 template = self .prepareSubmitTemplate ()
12111210
1212- if self .interactive :
1213- submitTemplate = self .prepareLogMessage (template , logMessage )
1211+ submitTemplate = self .prepareLogMessage (template , logMessage )
12141212
1215- if self .preserveUser :
1216- submitTemplate = submitTemplate + ("\n ######## Actual user %s, modified after commit\n " % p4User )
1217-
1218- if os .environ .has_key ("P4DIFF" ):
1219- del (os .environ ["P4DIFF" ])
1220- diff = ""
1221- for editedFile in editedFiles :
1222- diff += p4_read_pipe (['diff' , '-du' ,
1223- wildcard_encode (editedFile )])
1224-
1225- newdiff = ""
1226- for newFile in filesToAdd :
1227- newdiff += "==== new file ====\n "
1228- newdiff += "--- /dev/null\n "
1229- newdiff += "+++ %s\n " % newFile
1230- f = open (newFile , "r" )
1231- for line in f .readlines ():
1232- newdiff += "+" + line
1233- f .close ()
1234-
1235- if self .checkAuthorship and not self .p4UserIsMe (p4User ):
1236- submitTemplate += "######## git author %s does not match your p4 account.\n " % gitEmail
1237- submitTemplate += "######## Use option --preserve-user to modify authorship.\n "
1238- submitTemplate += "######## Variable git-p4.skipUserNameCheck hides this message.\n "
1239-
1240- separatorLine = "######## everything below this line is just the diff #######\n "
1241-
1242- (handle , fileName ) = tempfile .mkstemp ()
1243- tmpFile = os .fdopen (handle , "w+" )
1244- if self .isWindows :
1245- submitTemplate = submitTemplate .replace ("\n " , "\r \n " )
1246- separatorLine = separatorLine .replace ("\n " , "\r \n " )
1247- newdiff = newdiff .replace ("\n " , "\r \n " )
1248- tmpFile .write (submitTemplate + separatorLine + diff + newdiff )
1213+ if self .preserveUser :
1214+ submitTemplate = submitTemplate + ("\n ######## Actual user %s, modified after commit\n " % p4User )
1215+
1216+ if os .environ .has_key ("P4DIFF" ):
1217+ del (os .environ ["P4DIFF" ])
1218+ diff = ""
1219+ for editedFile in editedFiles :
1220+ diff += p4_read_pipe (['diff' , '-du' ,
1221+ wildcard_encode (editedFile )])
1222+
1223+ newdiff = ""
1224+ for newFile in filesToAdd :
1225+ newdiff += "==== new file ====\n "
1226+ newdiff += "--- /dev/null\n "
1227+ newdiff += "+++ %s\n " % newFile
1228+ f = open (newFile , "r" )
1229+ for line in f .readlines ():
1230+ newdiff += "+" + line
1231+ f .close ()
1232+
1233+ if self .checkAuthorship and not self .p4UserIsMe (p4User ):
1234+ submitTemplate += "######## git author %s does not match your p4 account.\n " % gitEmail
1235+ submitTemplate += "######## Use option --preserve-user to modify authorship.\n "
1236+ submitTemplate += "######## Variable git-p4.skipUserNameCheck hides this message.\n "
1237+
1238+ separatorLine = "######## everything below this line is just the diff #######\n "
1239+
1240+ (handle , fileName ) = tempfile .mkstemp ()
1241+ tmpFile = os .fdopen (handle , "w+" )
1242+ if self .isWindows :
1243+ submitTemplate = submitTemplate .replace ("\n " , "\r \n " )
1244+ separatorLine = separatorLine .replace ("\n " , "\r \n " )
1245+ newdiff = newdiff .replace ("\n " , "\r \n " )
1246+ tmpFile .write (submitTemplate + separatorLine + diff + newdiff )
1247+ tmpFile .close ()
1248+
1249+ if self .edit_template (fileName ):
1250+ # read the edited message and submit
1251+ tmpFile = open (fileName , "rb" )
1252+ message = tmpFile .read ()
12491253 tmpFile .close ()
1254+ submitTemplate = message [:message .index (separatorLine )]
1255+ if self .isWindows :
1256+ submitTemplate = submitTemplate .replace ("\r \n " , "\n " )
1257+ p4_write_pipe (['submit' , '-i' ], submitTemplate )
12501258
1251- if self .edit_template (fileName ):
1252- # read the edited message and submit
1253- tmpFile = open (fileName , "rb" )
1254- message = tmpFile .read ()
1255- tmpFile .close ()
1256- submitTemplate = message [:message .index (separatorLine )]
1257- if self .isWindows :
1258- submitTemplate = submitTemplate .replace ("\r \n " , "\n " )
1259- p4_write_pipe (['submit' , '-i' ], submitTemplate )
1260-
1261- if self .preserveUser :
1262- if p4User :
1263- # Get last changelist number. Cannot easily get it from
1264- # the submit command output as the output is
1265- # unmarshalled.
1266- changelist = self .lastP4Changelist ()
1267- self .modifyChangelistUser (changelist , p4User )
1268-
1269- # The rename/copy happened by applying a patch that created a
1270- # new file. This leaves it writable, which confuses p4.
1271- for f in pureRenameCopy :
1272- p4_sync (f , "-f" )
1273-
1274- else :
1275- # skip this patch
1276- print "Submission cancelled, undoing p4 changes."
1277- for f in editedFiles :
1278- p4_revert (f )
1279- for f in filesToAdd :
1280- p4_revert (f )
1281- os .remove (f )
1259+ if self .preserveUser :
1260+ if p4User :
1261+ # Get last changelist number. Cannot easily get it from
1262+ # the submit command output as the output is
1263+ # unmarshalled.
1264+ changelist = self .lastP4Changelist ()
1265+ self .modifyChangelistUser (changelist , p4User )
1266+
1267+ # The rename/copy happened by applying a patch that created a
1268+ # new file. This leaves it writable, which confuses p4.
1269+ for f in pureRenameCopy :
1270+ p4_sync (f , "-f" )
12821271
1283- os .remove (fileName )
12841272 else :
1285- fileName = "submit.txt"
1286- file = open (fileName , "w+" )
1287- file .write (self .prepareLogMessage (template , logMessage ))
1288- file .close ()
1289- print ("Perforce submit template written as %s. "
1290- + "Please review/edit and then use p4 submit -i < %s to submit directly!"
1291- % (fileName , fileName ))
1273+ # skip this patch
1274+ print "Submission cancelled, undoing p4 changes."
1275+ for f in editedFiles :
1276+ p4_revert (f )
1277+ for f in filesToAdd :
1278+ p4_revert (f )
1279+ os .remove (f )
1280+
1281+ os .remove (fileName )
12921282
12931283 # Export git tags as p4 labels. Create a p4 label and then tag
12941284 # with that.
@@ -1437,8 +1427,6 @@ def run(self, args):
14371427 commit = commits [0 ]
14381428 commits = commits [1 :]
14391429 self .applyCommit (commit )
1440- if not self .interactive :
1441- break
14421430
14431431 if len (commits ) == 0 :
14441432 print "All changes applied!"
0 commit comments