git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 08/17] git-p4: use 'git hook' to run hooks

From
Josh Steadmon <steadmon@google.com>
Date
Dec 16, 2020, 00:27 UTC
Message-ID
<20201216002712.GP36751@google.com>
In-Reply-To
<20201205014945.1502660-9-emilyshaffer@google.com>
On 2020.12.04 17:49, Emily Shaffer wrote:
Show 38 quoted lines
> diff --git a/git-p4.py b/git-p4.py
> index 6ae5bbfe99..73161a56d9 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -208,70 +208,18 @@ def decode_path(path):
>  
>  def run_git_hook(cmd, param=[]):
>      """Execute a hook if the hook exists."""
> -    if verbose:
> -        sys.stderr.write("Looking for hook: %s\n" % cmd)
> -        sys.stderr.flush()
> -
> -    hooks_path = gitConfig("core.hooksPath")
> -    if len(hooks_path) <= 0:
> -        hooks_path = os.path.join(os.environ["GIT_DIR"], "hooks")
> -
> -    if not isinstance(param, list):
> -        param=[param]
> -
> -    # resolve hook file name, OS depdenent
> -    hook_file = os.path.join(hooks_path, cmd)
> -    if platform.system() == 'Windows':
> -        if not os.path.isfile(hook_file):
> -            # look for the file with an extension
> -            files = glob.glob(hook_file + ".*")
> -            if not files:
> -                return True
> -            files.sort()
> -            hook_file = files.pop()
> -            while hook_file.upper().endswith(".SAMPLE"):
> -                # The file is a sample hook. We don't want it
> -                if len(files) > 0:
> -                    hook_file = files.pop()
> -                else:
> -                    return True
> -
> -    if not os.path.isfile(hook_file) or not os.access(hook_file, os.X_OK):
> +    print('ESS: entering run_git_hook')
Looks like a stray debug message here?
Show 40 quoted lines
> +    if not cmd:
>          return True
>  
> -    return run_hook_command(hook_file, param) == 0
> -
> -def run_hook_command(cmd, param):
> -    """Executes a git hook command
> -       cmd = the command line file to be executed. This can be
> -       a file that is run by OS association.
> -
> -       param = a list of parameters to pass to the cmd command
> -
> -       On windows, the extension is checked to see if it should
> -       be run with the Git for Windows Bash shell.  If there
> -       is no file extension, the file is deemed a bash shell
> -       and will be handed off to sh.exe. Otherwise, Windows
> -       will be called with the shell to handle the file assocation.
> -
> -       For non Windows operating systems, the file is called
> -       as an executable.
> -    """
> -    cli = [cmd] + param
> -    use_shell = False
> -    if platform.system() == 'Windows':
> -        (root,ext) = os.path.splitext(cmd)
> -        if ext == "":
> -            exe_path = os.environ.get("EXEPATH")
> -            if exe_path is None:
> -                exe_path = ""
> -            else:
> -                exe_path = os.path.join(exe_path, "bin")
> -            cli = [os.path.join(exe_path, "SH.EXE")] + cli
> -        else:
> -            use_shell = True
> -    return subprocess.call(cli, shell=use_shell)
> +    """args are specified with -a <arg> -a <arg> -a <arg>"""
> +    args = (['git', 'hook', 'run'] +
> +	    ["-a" + arg for arg in param] +
> +	    [cmd])
> +    print ('ESS: args:')
Here as well.
Show 9 quoted lines
> +    print (args)
>  
> +    return subprocess.call(args) == 0
>  
>  def write_pipe(c, stdin):
>      if verbose:
> -- 
> 2.28.0.rc0.142.g3c755180ce-goog
> 
Previous: Emily ShafferNext: Emily Shaffer
Message 17 of 53 in “commit: use config-based hooks (config-based hooks part II)”
  1. commit: use config-based hooks (config-based hooks part II)Emily Shaffer, Oct 14, 2020
  2. Junio C HamanoOct 16, 2020
  3. 00/17 use config-based hooks (config-based hooks partEmily Shaffer, Dec 5, 2020
  4. 01/17 commit: use config-based hooksEmily Shaffer, Dec 5, 2020
  5. 03/17 merge: use config-based hooks for post-merge hookEmily Shaffer, Dec 5, 2020
  6. 02/17 am: convert applypatch hooks to use configEmily Shaffer, Dec 5, 2020
  7. 05/17 rebase: teach pre-rebase to use hook.hEmily Shaffer, Dec 5, 2020
  8. 04/17 gc: use hook library for pre-auto-gc hookEmily Shaffer, Dec 5, 2020
  9. 15/17 post-update: use hook.h libraryEmily Shaffer, Dec 5, 2020
  10. 06/17 read-cache: convert post-index-change hook to use configEmily Shaffer, Dec 5, 2020
  11. 07/17 receive-pack: convert push-to-checkout hook to hook.hEmily Shaffer, Dec 5, 2020
  12. 14/17 proc-receive: acquire hook list from hook.hEmily Shaffer, Dec 5, 2020
  13. 09/17 hooks: convert 'post-checkout' hook to hook libraryEmily Shaffer, Dec 5, 2020
  14. 12/17 reference-transaction: look for hooks in configEmily Shaffer, Dec 5, 2020
  15. 11/17 transport: convert pre-push hook to use configEmily Shaffer, Dec 5, 2020
  16. 08/17 git-p4: use 'git hook' to run hooksEmily Shaffer, Dec 5, 2020
  17. Josh SteadmonDec 16, 2020
  18. Emily ShafferDec 16, 2020
  19. 10/17 hook: convert 'post-rewrite' hook to configEmily Shaffer, Dec 5, 2020
  20. Josh SteadmonDec 8, 2020
  21. Emily ShafferDec 15, 2020
  22. 13/17 receive-pack: convert 'update' hook to hook.hEmily Shaffer, Dec 5, 2020
  23. 16/17 receive-pack: convert receive hooks to hook.hEmily Shaffer, Dec 5, 2020
  24. 17/17 run-command: stop thinking about hooksEmily Shaffer, Dec 5, 2020
  25. 00/17 use config-based hooks (config-based hooks part II)Emily Shaffer, Dec 22, 2020
  26. 04/17 gc: use hook library for pre-auto-gc hookEmily Shaffer, Dec 22, 2020
  27. 01/17 commit: use config-based hooksEmily Shaffer, Dec 22, 2020
  28. Junio C HamanoFeb 1, 2021
  29. Emily ShafferMar 10, 2021
  30. Junio C HamanoMar 10, 2021
  31. Junio C HamanoFeb 1, 2021
  32. Emily ShafferMar 10, 2021
  33. 03/17 merge: use config-based hooks for post-merge hookEmily Shaffer, Dec 22, 2020
  34. 06/17 read-cache: convert post-index-change hook to use configEmily Shaffer, Dec 22, 2020
  35. 02/17 am: convert applypatch hooks to use configEmily Shaffer, Dec 22, 2020
  36. Junio C HamanoFeb 1, 2021
  37. 05/17 rebase: teach pre-rebase to use hook.hEmily Shaffer, Dec 22, 2020
  38. 07/17 receive-pack: convert push-to-checkout hook to hook.hEmily Shaffer, Dec 22, 2020
  39. 09/17 hooks: convert 'post-checkout' hook to hook libraryEmily Shaffer, Dec 22, 2020
  40. 08/17 git-p4: use 'git hook' to run hooksEmily Shaffer, Dec 22, 2020
  41. 13/17 receive-pack: convert 'update' hook to hook.hEmily Shaffer, Dec 22, 2020
  42. 14/17 proc-receive: acquire hook list from hook.hEmily Shaffer, Dec 22, 2020
  43. 10/17 hook: convert 'post-rewrite' hook to configEmily Shaffer, Dec 22, 2020
  44. 16/17 receive-pack: convert receive hooks to hook.hEmily Shaffer, Dec 22, 2020
  45. 12/17 reference-transaction: look for hooks in configEmily Shaffer, Dec 22, 2020
  46. 17/17 run-command: stop thinking about hooksEmily Shaffer, Dec 22, 2020
  47. 15/17 post-update: use hook.h libraryEmily Shaffer, Dec 22, 2020
  48. 11/17 transport: convert pre-push hook to use configEmily Shaffer, Dec 22, 2020
  49. Emily ShafferDec 28, 2020
  50. 18/17 doc: make git-hook.txt point of truthEmily Shaffer, Dec 28, 2020
  51. Emily ShafferDec 28, 2020
  52. Josh SteadmonFeb 18, 2021
  53. Josh SteadmonDec 16, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.