scripts: do not get confused with HEAD in work tree
When you have a file called HEAD in your work tree, many commands that our scripts feed "HEAD" to would complain about the rev vs path ambiguity. A solution is to form command line more carefully by appending -- to them, which makes it clear that we mean HEAD rev not HEAD file. This patch would apply to maint. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
1e72a40de9
commit
38762c47d6
|
@ -214,7 +214,7 @@ fi
|
||||||
|
|
||||||
case "$resolved" in
|
case "$resolved" in
|
||||||
'')
|
'')
|
||||||
files=$(git diff-index --cached --name-only HEAD) || exit
|
files=$(git diff-index --cached --name-only HEAD --) || exit
|
||||||
if [ "$files" ]; then
|
if [ "$files" ]; then
|
||||||
echo "Dirty index: cannot apply patches (dirty: $files)" >&2
|
echo "Dirty index: cannot apply patches (dirty: $files)" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -348,7 +348,7 @@ do
|
||||||
case "$resolved$interactive" in
|
case "$resolved$interactive" in
|
||||||
tt)
|
tt)
|
||||||
# This is used only for interactive view option.
|
# This is used only for interactive view option.
|
||||||
git diff-index -p --cached HEAD >"$dotest/patch"
|
git diff-index -p --cached HEAD -- >"$dotest/patch"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
esac
|
esac
|
||||||
|
@ -409,7 +409,7 @@ do
|
||||||
# trust what the user has in the index file and the
|
# trust what the user has in the index file and the
|
||||||
# working tree.
|
# working tree.
|
||||||
resolved=
|
resolved=
|
||||||
git diff-index --quiet --cached HEAD && {
|
git diff-index --quiet --cached HEAD -- && {
|
||||||
echo "No changes - did you forget to use 'git add'?"
|
echo "No changes - did you forget to use 'git add'?"
|
||||||
stop_here_user_resolve $this
|
stop_here_user_resolve $this
|
||||||
}
|
}
|
||||||
|
@ -431,7 +431,7 @@ do
|
||||||
then
|
then
|
||||||
# Applying the patch to an earlier tree and merging the
|
# Applying the patch to an earlier tree and merging the
|
||||||
# result may have produced the same tree as ours.
|
# result may have produced the same tree as ours.
|
||||||
git diff-index --quiet --cached HEAD && {
|
git diff-index --quiet --cached HEAD -- && {
|
||||||
echo No changes -- Patch already applied.
|
echo No changes -- Patch already applied.
|
||||||
go_next
|
go_next
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -95,7 +95,7 @@ USAGE="[--env-filter <command>] [--tree-filter <command>] \
|
||||||
. git-sh-setup
|
. git-sh-setup
|
||||||
|
|
||||||
git diff-files --quiet &&
|
git diff-files --quiet &&
|
||||||
git diff-index --cached --quiet HEAD ||
|
git diff-index --cached --quiet HEAD -- ||
|
||||||
die "Cannot rewrite branch(es) with a dirty working directory."
|
die "Cannot rewrite branch(es) with a dirty working directory."
|
||||||
|
|
||||||
tempdir=.git-rewrite
|
tempdir=.git-rewrite
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
# because the current index is what we will be committing as the
|
# because the current index is what we will be committing as the
|
||||||
# merge result.
|
# merge result.
|
||||||
|
|
||||||
git diff-index --quiet --cached HEAD || exit 2
|
git diff-index --quiet --cached HEAD -- || exit 2
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -52,7 +52,7 @@ require_clean_work_tree () {
|
||||||
git rev-parse --verify HEAD > /dev/null &&
|
git rev-parse --verify HEAD > /dev/null &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff-files --quiet &&
|
git diff-files --quiet &&
|
||||||
git diff-index --cached --quiet HEAD ||
|
git diff-index --cached --quiet HEAD -- ||
|
||||||
die "Working tree is dirty"
|
die "Working tree is dirty"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ do
|
||||||
git rev-parse --verify HEAD > /dev/null &&
|
git rev-parse --verify HEAD > /dev/null &&
|
||||||
git update-index --refresh &&
|
git update-index --refresh &&
|
||||||
git diff-files --quiet &&
|
git diff-files --quiet &&
|
||||||
! git diff-index --cached --quiet HEAD &&
|
! git diff-index --cached --quiet HEAD -- &&
|
||||||
. "$DOTEST"/author-script &&
|
. "$DOTEST"/author-script &&
|
||||||
export GIT_AUTHOR_NAME GIT_AUTHOR_NAME GIT_AUTHOR_DATE &&
|
export GIT_AUTHOR_NAME GIT_AUTHOR_NAME GIT_AUTHOR_DATE &&
|
||||||
git commit -F "$DOTEST"/message -e
|
git commit -F "$DOTEST"/message -e
|
||||||
|
|
|
@ -60,7 +60,7 @@ continue_merge () {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cmt=`cat "$dotest/current"`
|
cmt=`cat "$dotest/current"`
|
||||||
if ! git diff-index --quiet HEAD
|
if ! git diff-index --quiet HEAD --
|
||||||
then
|
then
|
||||||
if ! git-commit -C "$cmt"
|
if ! git-commit -C "$cmt"
|
||||||
then
|
then
|
||||||
|
@ -253,7 +253,7 @@ fi
|
||||||
|
|
||||||
# The tree must be really really clean.
|
# The tree must be really really clean.
|
||||||
git update-index --refresh || exit
|
git update-index --refresh || exit
|
||||||
diff=$(git diff-index --cached --name-status -r HEAD)
|
diff=$(git diff-index --cached --name-status -r HEAD --)
|
||||||
case "$diff" in
|
case "$diff" in
|
||||||
?*) echo "cannot rebase: your index is not up-to-date"
|
?*) echo "cannot rebase: your index is not up-to-date"
|
||||||
echo "$diff"
|
echo "$diff"
|
||||||
|
|
|
@ -14,7 +14,7 @@ trap 'rm -f "$TMP-*"' 0
|
||||||
ref_stash=refs/stash
|
ref_stash=refs/stash
|
||||||
|
|
||||||
no_changes () {
|
no_changes () {
|
||||||
git diff-index --quiet --cached HEAD &&
|
git diff-index --quiet --cached HEAD -- &&
|
||||||
git diff-files --quiet
|
git diff-files --quiet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue