Skip to content

Commit

Permalink
Merge branch 'js/filter-branch-submodule'
Browse files Browse the repository at this point in the history
* js/filter-branch-submodule:
  filter-branch: do not consider diverging submodules a 'dirty worktree'
  filter-branch: Fix fatal error on bare repositories
  • Loading branch information
Junio C Hamano committed Feb 7, 2009
2 parents 7de265a + 26be15f commit df4364a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 14 deletions.
27 changes: 14 additions & 13 deletions git-filter-branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down
4 changes: 3 additions & 1 deletion t/t7003-filter-branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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' '
Expand Down

0 comments on commit df4364a

Please sign in to comment.