mirror of
https://github.com/git/git.git
synced 2024-12-18 06:14:59 +08:00
Merge branch 'bw/template-tool-buildconfig'
* bw/template-tool-buildconfig: Modernize git calling conventions in hook templates Make templates honour SHELL_PATH and PERL_PATH
This commit is contained in:
commit
0cb050abc2
2
Makefile
2
Makefile
@ -1480,7 +1480,7 @@ endif
|
||||
ifndef NO_PYTHON
|
||||
$(QUIET_SUBDIR0)git_remote_helpers $(QUIET_SUBDIR1) PYTHON_PATH='$(PYTHON_PATH_SQ)' prefix='$(prefix_SQ)' all
|
||||
endif
|
||||
$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1)
|
||||
$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1) SHELL_PATH='$(SHELL_PATH_SQ)' PERL_PATH='$(PERL_PATH_SQ)'
|
||||
|
||||
please_set_SHELL_PATH_to_a_more_modern_shell:
|
||||
@$$(:)
|
||||
|
@ -11,6 +11,16 @@ prefix ?= $(HOME)
|
||||
template_instdir ?= $(prefix)/share/git-core/templates
|
||||
# DESTDIR=
|
||||
|
||||
ifndef SHELL_PATH
|
||||
SHELL_PATH = /bin/sh
|
||||
endif
|
||||
ifndef PERL_PATH
|
||||
PERL_PATH = perl
|
||||
endif
|
||||
|
||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
|
||||
|
||||
# Shell quote (do not use $(call) to accommodate ancient setups);
|
||||
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
|
||||
template_instdir_SQ = $(subst ','\'',$(template_instdir))
|
||||
@ -33,8 +43,11 @@ boilerplates.made : $(bpsrc)
|
||||
case "$$boilerplate" in \
|
||||
*--) continue;; \
|
||||
esac && \
|
||||
cp $$boilerplate blt/$$dst && \
|
||||
if test -x "blt/$$dst"; then rx=rx; else rx=r; fi && \
|
||||
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
|
||||
-e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
|
||||
-e 's|@PERL_PATH@|$(PERL_PATH_SQ)|g' $$boilerplate > \
|
||||
blt/$$dst && \
|
||||
if test -x "$$boilerplate"; then rx=rx; else rx=r; fi && \
|
||||
chmod a+$$rx "blt/$$dst" || exit; \
|
||||
done && \
|
||||
date >$@
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to check the commit log message.
|
||||
# Called by git-commit with one argument, the name of the file
|
||||
# Called by "git commit" with one argument, the name of the file
|
||||
# that has the commit message. The hook should exit with non-zero
|
||||
# status after issuing an appropriate message if it wants to stop the
|
||||
# commit. The hook is allowed to edit the commit message file.
|
||||
|
@ -5,4 +5,4 @@
|
||||
#
|
||||
# To enable this hook, rename this file to "post-update".
|
||||
|
||||
exec git-update-server-info
|
||||
exec git update-server-info
|
||||
|
@ -1,13 +1,13 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by git-commit with no arguments. The hook should
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message if
|
||||
# it wants to stop the commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-commit".
|
||||
|
||||
if git-rev-parse --verify HEAD >/dev/null 2>&1
|
||||
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||
then
|
||||
against=HEAD
|
||||
else
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# Copyright (c) 2006, 2008 Junio C Hamano
|
||||
#
|
||||
# The "pre-rebase" hook is run just before "git-rebase" starts doing
|
||||
# The "pre-rebase" hook is run just before "git rebase" starts doing
|
||||
# its job, and can prevent the command from running by exiting with
|
||||
# non-zero status.
|
||||
#
|
||||
@ -43,7 +43,7 @@ git show-ref -q "$topic" || {
|
||||
}
|
||||
|
||||
# Is topic fully merged to master?
|
||||
not_in_master=`git-rev-list --pretty=oneline ^master "$topic"`
|
||||
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
|
||||
if test -z "$not_in_master"
|
||||
then
|
||||
echo >&2 "$topic is fully merged to master; better remove it."
|
||||
@ -51,11 +51,11 @@ then
|
||||
fi
|
||||
|
||||
# Is topic ever merged to next? If so you should not be rebasing it.
|
||||
only_next_1=`git-rev-list ^master "^$topic" ${publish} | sort`
|
||||
only_next_2=`git-rev-list ^master ${publish} | sort`
|
||||
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
|
||||
only_next_2=`git rev-list ^master ${publish} | sort`
|
||||
if test "$only_next_1" = "$only_next_2"
|
||||
then
|
||||
not_in_topic=`git-rev-list "^$topic" master`
|
||||
not_in_topic=`git rev-list "^$topic" master`
|
||||
if test -z "$not_in_topic"
|
||||
then
|
||||
echo >&2 "$topic is already up-to-date with master"
|
||||
@ -64,8 +64,8 @@ then
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
not_in_next=`git-rev-list --pretty=oneline ^${publish} "$topic"`
|
||||
perl -e '
|
||||
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
|
||||
@PERL_PATH@ -e '
|
||||
my $topic = $ARGV[0];
|
||||
my $msg = "* $topic has commits already merged to public branch:\n";
|
||||
my (%not_in_next) = map {
|
||||
@ -157,13 +157,13 @@ B to be deleted.
|
||||
|
||||
To compute (1):
|
||||
|
||||
git-rev-list ^master ^topic next
|
||||
git-rev-list ^master next
|
||||
git rev-list ^master ^topic next
|
||||
git rev-list ^master next
|
||||
|
||||
if these match, topic has not merged in next at all.
|
||||
|
||||
To compute (2):
|
||||
|
||||
git-rev-list master..topic
|
||||
git rev-list master..topic
|
||||
|
||||
if this is empty, it is fully merged to "master".
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to prepare the commit log message.
|
||||
# Called by git-commit with the name of the file that has the
|
||||
# Called by "git commit" with the name of the file that has the
|
||||
# commit message, followed by the description of the commit
|
||||
# message's source. The hook's purpose is to edit the commit
|
||||
# message file. If the hook fails with a non-zero status,
|
||||
@ -22,10 +22,10 @@
|
||||
|
||||
case "$2,$3" in
|
||||
merge,)
|
||||
perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
|
||||
@PERL_PATH@ -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
|
||||
|
||||
# ,|template,)
|
||||
# perl -i.bak -pe '
|
||||
# @PERL_PATH@ -i.bak -pe '
|
||||
# print "\n" . `git diff --cached --name-status -r`
|
||||
# if /^#/ && $first++ == 0' "$1" ;;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to blocks unannotated tags from entering.
|
||||
# Called by git-receive-pack with arguments: refname sha1-old sha1-new
|
||||
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
|
||||
#
|
||||
# To enable this hook, rename this file to "update".
|
||||
#
|
||||
@ -64,7 +64,7 @@ zero="0000000000000000000000000000000000000000"
|
||||
if [ "$newrev" = "$zero" ]; then
|
||||
newrev_type=delete
|
||||
else
|
||||
newrev_type=$(git-cat-file -t $newrev)
|
||||
newrev_type=$(git cat-file -t $newrev)
|
||||
fi
|
||||
|
||||
case "$refname","$newrev_type" in
|
||||
|
@ -1,4 +1,4 @@
|
||||
# git-ls-files --others --exclude-from=.git/info/exclude
|
||||
# git ls-files --others --exclude-from=.git/info/exclude
|
||||
# Lines that start with '#' are comments.
|
||||
# For a project mostly in C, the following would be a good set of
|
||||
# exclude patterns (uncomment them if you want to use them):
|
||||
|
Loading…
Reference in New Issue
Block a user