[fixed PATCH] git-filter-branch.sh: Fix broken setting of GIT_DIR
- From
David Kastrup <dak@gnu.org>
- Date
- Aug 10, 2007, 16:21 UTC
- Message-ID
- <864pj74ay9.fsf@lola.quinscape.zz>
- In-Reply-To
- <868x8j7aj2.fsf@lola.quinscape.zz>
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@gnu.org> --- 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