From: Luke Diamand Date: Sat, 15 Oct 2011 20:10:58 GMT Subject: Re: [PATCH] Git-p4: git-p4.changeOnSubmit to do 'change' instead of 'submit'. Message-ID: <4E99E8D2.6020107@diamand.org> In-Reply-To: <1318629110-15232-1-git-send-email-andreiw@vmware.com> On 14/10/11 22:51, Andrei Warkentin wrote: > Many users of p4/sd use changelists for review, regression > tests and batch builds, thus changes are almost never directly > submitted. > > This new config option lets a 'p4 change -i' run instead of > the 'p4 submit -i'. > > Signed-off-by: Andrei Warkentin > --- > contrib/fast-import/git-p4 | 16 ++++++++++++---- > contrib/fast-import/git-p4.txt | 10 ++++++++++ > 2 files changed, 22 insertions(+), 4 deletions(-) > > diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4 > index 2f7b270..19c295b 100755 > --- a/contrib/fast-import/git-p4 > +++ b/contrib/fast-import/git-p4 > @@ -959,7 +959,10 @@ class P4Submit(Command, P4UserMap): > submitTemplate = message[:message.index(separatorLine)] > if self.isWindows: > submitTemplate = submitTemplate.replace("\r\n", "\n") > - p4_write_pipe("submit -i", submitTemplate) > + if gitConfig("git-p4.changeOnSubmit"): > + p4_write_pipe("change -i", submitTemplate) > + else: > + p4_write_pipe("subadasdmit -i", submitTemplate) What does "p4 subadasmit" do? That's a new command to me! (This patch also fails to apply cleanly to my shell-metacharacter patch). > > if self.preserveUser: > if p4User: > @@ -981,9 +984,14 @@ class P4Submit(Command, P4UserMap): > file = open(fileName, "w+") > file.write(self.prepareLogMessage(template, logMessage)) > file.close() > - print ("Perforce submit template written as %s. " > - + "Please review/edit and then use p4 submit -i< %s to submit directly!" > - % (fileName, fileName)) > + if gitConfig("git-p4.changeOnSubmit"): > + print ("Perforce submit template written as %s. " > + + "Please review/edit and then use p4 change -i< %s to create changelist!" > + % (fileName, fileName)) > + else: > + print ("Perforce submit template written as %s. " > + + "Please review/edit and then use p4 submit -i< %s to submit directly!" > + % (fileName, fileName)) > > def run(self, args): > if len(args) == 0: > diff --git a/contrib/fast-import/git-p4.txt b/contrib/fast-import/git-p4.txt > index 52003ae..3a3a815 100644 > --- a/contrib/fast-import/git-p4.txt > +++ b/contrib/fast-import/git-p4.txt > @@ -180,6 +180,16 @@ git-p4.allowSubmit > > git config [--global] git-p4.allowSubmit false > > +git-p4.changeOnSubmit > + > + git config [--global] git-p4.changeOnSubmit false > + > +Most places using p4/sourcedepot don't actually want you submit Small typo: should be "want you *to* submit" > +changes directly, and changelists are used to do regression testing, > +batch builds and review, hence, by setting this parameter to > +true you acknowledge you end up creating a changelist which you > +must then manually commit. > + > git-p4.syncFromOrigin > > A useful setup may be that you have a periodically updated git repository Regards! Luke