Subject: Re: [PATCH] git-p4.py: fix --prepare-p4-only error with multiple commits

From: Junio C Hamano <[email-masked]>
Date: Fri, 01 May 2020 11:39:50 -0700

"Ben Keene via GitGitGadget" <[email-masked]> writes:

> From: Ben Keene <[email-masked]>
>
> When using git p4 submit with the --prepare-p4-only option, the program
> should prepare a single p4 changelist and notify the user that more
> commits are pending and then stop processing.
>
> A bug has been introduced by the p4-changelist hook feature that
> causes the program to continue to try and process all pending
> changelists at the same time.
>
> The function applyCommit should return True when applying the commit
> was successful and the program should continue. In the case of the
> --prepare-p4-only flag, the function should return False, alerting the
> caller that the program should not proceed with additional commits.
>
> Change the return value from True to False in the applyCommit function
> when git-p4 is executed with --prepare-p4-only flag.
>
> Signed-off-by: Ben Keene <[email-masked]>
> ---

I do not do P4, so asking those who touched the program in the past
year and half for opinions.

Thanks.

> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-775%2Fseraphire%2Fseraphire%2Fp4-hook-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-775/seraphire/seraphire/p4-hook-v1
> Pull-Request: https://github.com/git/git/pull/775
>
>  git-p4.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/git-p4.py b/git-p4.py
> index b8b2a1679e7..d9ced1bf552 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -1984,7 +1984,7 @@ def get_diff_description(self, editedFiles, filesToAdd, symlinks):
>          return (diff + newdiff).replace('\r\n', '\n')
>  
>      def applyCommit(self, id):
> -        """Apply one commit, return True if it succeeded."""
> +        """Apply one commit, return True if it should continue processing."""
>  
>          print("Applying", read_pipe(["git", "show", "-s",
>                                       "--format=format:%h %s", id]))
> @@ -2222,7 +2222,7 @@ def applyCommit(self, id):
>                          print("  " + f)
>                  print("")
>                  sys.stdout.flush()
> -                return True
> +                return False
>  
>              if self.edit_template(fileName):
>                  if not self.no_verify:
>
> base-commit: d61d20c9b413225793f8a0b491bbbec61c184e26