If filter-branch is entered with an unset GIT_DIR, things are rather fragile. The GIT_DIR variable setting then points to something like $(pwd)/../.. which is neither guaranteed to be a git directory (depends on where filter-branch is started), nor will it continue to work once the temporary directory (for which the pwd is output) ceases to exist. So we just call git-rev-parse in order to get the correct setting here for exporting. Signed-off-by: David Kastrup <dak@xxxxxxx> --- git-filter-branch.sh | 13 +++++-------- 1 files changed, 5 insertions(+), 8 deletions(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index b5fa449..9e9e8bf 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -170,14 +170,11 @@ do esac done < "$tempdir"/backup-refs -case "$GIT_DIR" in -/*) - ;; -*) - GIT_DIR="$(pwd)/../../$GIT_DIR" - ;; -esac -export GIT_DIR GIT_WORK_TREE=. +GIT_DIR=$(cd ../..;cd "./$(git-rev-parse --git-dir)";pwd) + +GIT_WORK_TREE=. + +export GIT_DIR GIT_WORK_TREE # These refs should be updated if their heads were rewritten -- 1.5.3.rc4.74.g3739cb17 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html