diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index ee906606c410fd1e367007ac1b9a3a90cca52aee..d04c346e12fb73539e9910951744e9d5558ad4d3 100755 (executable)
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
;;
*)
git rev-list --reverse --topo-order --default HEAD \
;;
*)
git rev-list --reverse --topo-order --default HEAD \
- --parents --full-history "$@" -- "$filter_subdir"
+ --parents "$@" -- "$filter_subdir"
esac > ../revs || die "Could not get the commits"
commits=$(wc -l <../revs | tr -d " ")
esac > ../revs || die "Could not get the commits"
commits=$(wc -l <../revs | tr -d " ")
die "Could not checkout the index"
# files that $commit removed are now still in the working tree;
# remove them, else they would be added again
die "Could not checkout the index"
# files that $commit removed are now still in the working tree;
# remove them, else they would be added again
- git clean -q -f -x
+ git clean -d -q -f -x
eval "$filter_tree" < /dev/null ||
die "tree filter failed: $filter_tree"
eval "$filter_tree" < /dev/null ||
die "tree filter failed: $filter_tree"
trap - 0
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
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" &&
+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
export GIT_WORK_TREE
-test -z "$ORIG_GIT_INDEX_FILE" || GIT_INDEX_FILE="$ORIG_GIT_INDEX_FILE" &&
+}
+test -z "$ORIG_GIT_INDEX_FILE" || {
+ GIT_INDEX_FILE="$ORIG_GIT_INDEX_FILE" &&
export GIT_INDEX_FILE
export GIT_INDEX_FILE
+}
git read-tree -u -m HEAD
exit $ret
git read-tree -u -m HEAD
exit $ret