Browse Source

Merge branch 'js/filter-branch-submodule'

* js/filter-branch-submodule:
  filter-branch: do not consider diverging submodules a 'dirty worktree'
  filter-branch: Fix fatal error on bare repositories
maint
Junio C Hamano 16 years ago
parent
commit
df4364a429
  1. 27
      git-filter-branch.sh
  2. 4
      t/t7003-filter-branch.sh

27
git-filter-branch.sh

@ -108,7 +108,7 @@ OPTIONS_SPEC= @@ -108,7 +108,7 @@ OPTIONS_SPEC=
. git-sh-setup

if [ "$(is_bare_repository)" = false ]; then
git diff-files --quiet &&
git diff-files --ignore-submodules --quiet &&
git diff-index --cached --quiet HEAD -- ||
die "Cannot rewrite branch(es) with a dirty working directory."
fi
@ -469,19 +469,20 @@ rm -rf "$tempdir" @@ -469,19 +469,20 @@ rm -rf "$tempdir"

trap - 0

unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
test -z "$ORIG_GIT_DIR" || {
GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
}
test -z "$ORIG_GIT_WORK_TREE" || {
GIT_WORK_TREE="$ORIG_GIT_WORK_TREE" &&
export GIT_WORK_TREE
}
test -z "$ORIG_GIT_INDEX_FILE" || {
GIT_INDEX_FILE="$ORIG_GIT_INDEX_FILE" &&
export GIT_INDEX_FILE
}

if [ "$(is_bare_repository)" = false ]; then
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
test -z "$ORIG_GIT_DIR" || {
GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
}
test -z "$ORIG_GIT_WORK_TREE" || {
GIT_WORK_TREE="$ORIG_GIT_WORK_TREE" &&
export GIT_WORK_TREE
}
test -z "$ORIG_GIT_INDEX_FILE" || {
GIT_INDEX_FILE="$ORIG_GIT_INDEX_FILE" &&
export GIT_INDEX_FILE
}
git read-tree -u -m HEAD
fi


4
t/t7003-filter-branch.sh

@ -39,7 +39,9 @@ test_expect_success 'result is really identical' ' @@ -39,7 +39,9 @@ test_expect_success 'result is really identical' '
'

test_expect_success 'rewrite bare repository identically' '
(git config core.bare true && cd .git && git filter-branch branch)
(git config core.bare true && cd .git &&
git filter-branch branch > filter-output 2>&1 &&
! fgrep fatal filter-output)
'
git config core.bare false
test_expect_success 'result is really identical' '

Loading…
Cancel
Save