Skip to content

Commit 13e1108

Browse files
committed
Merge branch 'jk/filter-branch-come-back-to-original' into maint
* jk/filter-branch-come-back-to-original: filter-branch: return to original dir after filtering
2 parents ad62fd0 + 9727601 commit 13e1108

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

git-filter-branch.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,15 @@ t)
199199
test -d "$tempdir" &&
200200
die "$tempdir already exists, please remove it"
201201
esac
202+
orig_dir=$(pwd)
202203
mkdir -p "$tempdir/t" &&
203204
tempdir="$(cd "$tempdir"; pwd)" &&
204205
cd "$tempdir/t" &&
205206
workdir="$(pwd)" ||
206207
die ""
207208

208209
# Remove tempdir on exit
209-
trap 'cd ../..; rm -rf "$tempdir"' 0
210+
trap 'cd "$orig_dir"; rm -rf "$tempdir"' 0
210211

211212
ORIG_GIT_DIR="$GIT_DIR"
212213
ORIG_GIT_WORK_TREE="$GIT_WORK_TREE"
@@ -469,7 +470,7 @@ if [ "$filter_tag_name" ]; then
469470
done
470471
fi
471472

472-
cd ../..
473+
cd "$orig_dir"
473474
rm -rf "$tempdir"
474475

475476
trap - 0

t/t7003-filter-branch.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,20 @@ test_expect_success 'correct GIT_DIR while using -d' '
6464
grep drepo "$TRASHDIR/backup-refs"
6565
'
6666

67+
test_expect_success 'tree-filter works with -d' '
68+
git init drepo-tree &&
69+
(
70+
cd drepo-tree &&
71+
test_commit one &&
72+
git filter-branch -d "$TRASHDIR/dfoo" \
73+
--tree-filter "echo changed >one.t" &&
74+
echo changed >expect &&
75+
git cat-file blob HEAD:one.t >actual &&
76+
test_cmp expect actual &&
77+
test_cmp one.t actual
78+
)
79+
'
80+
6781
test_expect_success 'Fail if commit filter fails' '
6882
test_must_fail git filter-branch -f --commit-filter "exit 1" HEAD
6983
'

0 commit comments

Comments
 (0)