Subject: Re: git-p4.skipSubmitEdit

From: Luke Diamand <[email-masked]>
Date: Mon, 12 Sep 2011 08:34:08 +0100

On 08/09/11 21:40, L. A. Linden Levy wrote:
> Hi All,
>
> I have been using git-p4 for a while and it has allowed me to completely
> change the way I develop and still be able to use perforce which my
> company has for its main VCS. One thing that was driving me nuts was
> that "git p4 submit" cycles through all of my individual commits and
> asks me if I want to change them. The way I develop I often am checking
> in 20 to 50 different small commits each with a descriptive git comment.
> I felt like I was doing double duty by having emacs open on every commit
> into perforce. So I modified git-p4 to have an option to skip the
> editor. This option coupled with git-p4.skipSubmitEditCheck will make
> the submission non-interactive for "git p4 submit".

Sorry - I've not had a chance to look at this before now. But a couple 
of comments:

  - Is there a line wrap problem in the patch? It doesn't seem to want 
to apply for me.

  - needs an update to the documentation in git-p4.txt

  - is there any way to eliminate the slightly ugly 
"if/pass/else/do-stuff" construct?

  - I'd think if you turned off the editor completely then there's no 
point doing the submit-edit-check.

  - You probably need to follow the instructions in 
Documentation/SubmittingPatches so that Junio will pay attention to the 
patch.

Regards!
Luke

>
> Below are the patch and environment results:
>
>
> $ git config -l
> ...
> user.name=Loren A. Linden Levy
> git-p4.skipsubmitedit=true
> git-p4.skipsubmiteditcheck=true
> ...
>
> $ git format-patch origin/master --stdout
>
>  From 16c4344de0047cbaf3381eca590a3e59b0d0a25c Mon Sep 17 00:00:00 2001
> From: "Loren A. Linden Levy"<[email-masked]>
> Date: Thu, 8 Sep 2011 13:37:22 -0700
> Subject: [PATCH] changed git-p4
>
> ---
>   contrib/fast-import/git-p4 |   15 ++++++++++-----
>   1 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> index 2f7b270..a438b3e 100755
> --- a/contrib/fast-import/git-p4
> +++ b/contrib/fast-import/git-p4
> @@ -935,18 +935,23 @@ class P4Submit(Command, P4UserMap):
>               tmpFile.write(submitTemplate + separatorLine + diff +
> newdiff)
>               tmpFile.close()
>               mtime = os.stat(fileName).st_mtime
> -            if os.environ.has_key("P4EDITOR"):
> -                editor = os.environ.get("P4EDITOR")
> +            if gitConfig("git-p4.skipSubmitEdit") == "true":
> +                pass
>               else:
> -                editor = read_pipe("git var GIT_EDITOR").strip()
> -            system(editor + " " + fileName)
> -
> +                if os.environ.has_key("P4EDITOR"):
> +                    editor = os.environ.get("P4EDITOR")
> +                else:
> +                    editor = read_pipe("git var GIT_EDITOR").strip()
> +
> +                    system(editor + " " + fileName)
> +
>               if gitConfig("git-p4.skipSubmitEditCheck") == "true":
>                   checkModTime = False
>               else:
>                   checkModTime = True
>
>               response = "y"
> +
>               if checkModTime and (os.stat(fileName).st_mtime<= mtime):
>                   response = "x"
>                   while response != "y" and response != "n":