git-filter-branch.sh: Allow running in bare repositories
Commit 46eb449c restricted git-filter-branch to non-bare repositories unnecessarily; git-filter-branch can work on bare repositories just fine. Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
68067ca1ef
commit
a4661b018d
@ -97,9 +97,11 @@ USAGE="[--env-filter <command>] [--tree-filter <command>] \
|
|||||||
OPTIONS_SPEC=
|
OPTIONS_SPEC=
|
||||||
. git-sh-setup
|
. git-sh-setup
|
||||||
|
|
||||||
|
if [ "$(is_bare_repository)" = false ]; then
|
||||||
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."
|
||||||
|
fi
|
||||||
|
|
||||||
tempdir=.git-rewrite
|
tempdir=.git-rewrite
|
||||||
filter_env=
|
filter_env=
|
||||||
@ -434,6 +436,7 @@ rm -rf "$tempdir"
|
|||||||
|
|
||||||
trap - 0
|
trap - 0
|
||||||
|
|
||||||
|
if [ "$(is_bare_repository)" = false ]; then
|
||||||
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
|
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
|
||||||
test -z "$ORIG_GIT_DIR" || {
|
test -z "$ORIG_GIT_DIR" || {
|
||||||
GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
|
GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
|
||||||
@ -447,5 +450,6 @@ test -z "$ORIG_GIT_INDEX_FILE" || {
|
|||||||
export GIT_INDEX_FILE
|
export GIT_INDEX_FILE
|
||||||
}
|
}
|
||||||
git read-tree -u -m HEAD
|
git read-tree -u -m HEAD
|
||||||
|
fi
|
||||||
|
|
||||||
exit $ret
|
exit $ret
|
||||||
|
@ -38,6 +38,14 @@ test_expect_success 'result is really identical' '
|
|||||||
test $H = $(git rev-parse HEAD)
|
test $H = $(git rev-parse HEAD)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'rewrite bare repository identically' '
|
||||||
|
(git config core.bare true && cd .git && git-filter-branch branch)
|
||||||
|
'
|
||||||
|
git config core.bare false
|
||||||
|
test_expect_success 'result is really identical' '
|
||||||
|
test $H = $(git rev-parse HEAD)
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'rewrite, renaming a specific file' '
|
test_expect_success 'rewrite, renaming a specific file' '
|
||||||
git-filter-branch -f --tree-filter "mv d doh || :" HEAD
|
git-filter-branch -f --tree-filter "mv d doh || :" HEAD
|
||||||
'
|
'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user