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-name-rev in order to get the correct setting here for exporting. Signed-off-by: David Kastrup <dak@xxxxxxx> --- git-filter-branch.sh | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index b5fa449..6cd489e 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -170,14 +170,10 @@ 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 ../..;git-name-rev --git-dir) +GIT_WORK_TREE=. + +export GIT_DIR GIT_WORK_TREE # These refs should be updated if their heads were rewritten -- 1.5.3.rc4.43.gaf14 - 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