emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master d3ec68f5e43: ; Fix post-commit and pre-push hooks in worktree


From: Ruijie Yu
Subject: Re: master d3ec68f5e43: ; Fix post-commit and pre-push hooks in worktrees again
Date: Fri, 05 May 2023 11:28:43 +0800
User-agent: mu4e 1.9.22; emacs 30.0.50

Jim Porter <jporterbugs@gmail.com> writes:

> branch: master
> commit d3ec68f5e433e5792c1c63672c7b437bb29c5759
> Author: Jim Porter <jporterbugs@gmail.com>
> Commit: Jim Porter <jporterbugs@gmail.com>
>
>     ; Fix post-commit and pre-push hooks in worktrees again
>     
>     * build-aux/git-hooks/post-commit:
>     * build-aux/git-hooks/pre-push: Use "$(dirname $0)" to get the hooks
>     directory.
> ---
>  build-aux/git-hooks/post-commit | 4 +++-
>  build-aux/git-hooks/pre-push    | 4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/build-aux/git-hooks/post-commit b/build-aux/git-hooks/post-commit
> index 05f2d778b5c..10f43b539ac 100755
> --- a/build-aux/git-hooks/post-commit
> +++ b/build-aux/git-hooks/post-commit
> @@ -34,6 +34,8 @@
>  
>  ### Code:
>  
> +HOOKS_DIR=$(dirname $0)
> +

>From the first look, it seems that we assume the worktree root dir name
should never contains spaces.  Is this intended?

I guess the previous versions also assumed this (according to the
${GIT_DIR:-.git} in the quoted portion below), but I just wanted to be
sure about it.

Also, while looking into the build system (because I know make is always
unhappy about spaces), I noticed these lines in Makefile (which is
auto-generated from Makefile.in):

--8<---------------cut here---------------start------------->8---
$ grep --line-number -e abs_ Makefile
192:abs_srcdir=/opt/src/emacs/base/emacs-30
266:buildlisppath=${abs_srcdir}/lisp
461:    @for dir in '$(abs_srcdir)' '$(lispdir)' '$(archlibdir)'; do \
497:    @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${abs_srcdir}"`; \
--8<---------------cut here---------------end--------------->8---

Notice that lines 461 and 497 protects against spaces (presumably),
whereas line 266 doesn't.  If we do expect spaces in git root, line 266
might be an issue.

>  # Prefer gawk if available, as it handles NUL bytes properly.
>  if type gawk >/dev/null 2>&1; then
>    awk="gawk"
> @@ -42,4 +44,4 @@ else
>  fi
>  
>  git rev-parse HEAD | $awk -v reason=post-commit \
> -                          -f ${GIT_DIR:-.git}/hooks/commit-msg-files.awk
> +                          -f $HOOKS_DIR/commit-msg-files.awk
> diff --git a/build-aux/git-hooks/pre-push b/build-aux/git-hooks/pre-push
> index 6ff59102fd7..8d5dde2bbaf 100755
> --- a/build-aux/git-hooks/pre-push
> +++ b/build-aux/git-hooks/pre-push
> @@ -31,6 +31,8 @@
>  
>  ### Code:
>  
> +HOOKS_DIR=$(dirname $0)
> +
>  # Prefer gawk if available, as it handles NUL bytes properly.
>  if type gawk >/dev/null 2>&1; then
>    awk="gawk"
> @@ -83,4 +85,4 @@ $awk -v origin_name="$1" '
>      # Print every SHA after oldref, up to (and including) newref.
>      system("git rev-list --first-parent --reverse " oldref ".." newref)
>    }
> -' | $awk -v reason=pre-push -f ${GIT_DIR:-.git}/hooks/commit-msg-files.awk
> +' | $awk -v reason=pre-push -f $HOOKS_DIR/commit-msg-files.awk

-- 
Best,


RY

[Please note that this mail might go to spam due to some
misconfiguration in my mail server -- still investigating.]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]