зеркало из https://github.com/microsoft/git.git
Merge branch 'jk/filter-branch-come-back-to-original'
When used with "-d temporary-directory" option, "git filter-branch" failed to come back to the original working tree to perform the final clean-up procedure. * jk/filter-branch-come-back-to-original: filter-branch: return to original dir after filtering
This commit is contained in:
Коммит
9a11f13d9e
|
@ -199,6 +199,7 @@ t)
|
|||
test -d "$tempdir" &&
|
||||
die "$tempdir already exists, please remove it"
|
||||
esac
|
||||
orig_dir=$(pwd)
|
||||
mkdir -p "$tempdir/t" &&
|
||||
tempdir="$(cd "$tempdir"; pwd)" &&
|
||||
cd "$tempdir/t" &&
|
||||
|
@ -206,7 +207,7 @@ workdir="$(pwd)" ||
|
|||
die ""
|
||||
|
||||
# Remove tempdir on exit
|
||||
trap 'cd ../..; rm -rf "$tempdir"' 0
|
||||
trap 'cd "$orig_dir"; rm -rf "$tempdir"' 0
|
||||
|
||||
ORIG_GIT_DIR="$GIT_DIR"
|
||||
ORIG_GIT_WORK_TREE="$GIT_WORK_TREE"
|
||||
|
@ -469,7 +470,7 @@ if [ "$filter_tag_name" ]; then
|
|||
done
|
||||
fi
|
||||
|
||||
cd ../..
|
||||
cd "$orig_dir"
|
||||
rm -rf "$tempdir"
|
||||
|
||||
trap - 0
|
||||
|
|
|
@ -64,6 +64,20 @@ test_expect_success 'correct GIT_DIR while using -d' '
|
|||
grep drepo "$TRASHDIR/backup-refs"
|
||||
'
|
||||
|
||||
test_expect_success 'tree-filter works with -d' '
|
||||
git init drepo-tree &&
|
||||
(
|
||||
cd drepo-tree &&
|
||||
test_commit one &&
|
||||
git filter-branch -d "$TRASHDIR/dfoo" \
|
||||
--tree-filter "echo changed >one.t" &&
|
||||
echo changed >expect &&
|
||||
git cat-file blob HEAD:one.t >actual &&
|
||||
test_cmp expect actual &&
|
||||
test_cmp one.t actual
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'Fail if commit filter fails' '
|
||||
test_must_fail git filter-branch -f --commit-filter "exit 1" HEAD
|
||||
'
|
||||
|
|
Загрузка…
Ссылка в новой задаче