mirror of
https://github.com/newren/git-filter-repo.git
synced 2024-11-07 09:20:29 +00:00
filter-repo: add testcases for --[to-]subdirectory-filter
Signed-off-by: Elijah Newren <newren@gmail.com>
This commit is contained in:
parent
1f0e57bada
commit
2b2ab0422e
@ -140,16 +140,19 @@ test_expect_success '--path-rename inability to squash' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'setup tag_rename' '
|
||||
test_create_repo tag_rename &&
|
||||
test_expect_success 'more setup' '
|
||||
test_create_repo metasyntactic &&
|
||||
(
|
||||
cd tag_rename &&
|
||||
cd metasyntactic &&
|
||||
weird_name=$(printf "file\tna\nme") &&
|
||||
echo "funny" >"$weird_name" &&
|
||||
mkdir numbers &&
|
||||
test_seq 1 10 >numbers/small &&
|
||||
test_seq 100 110 >numbers/medium &&
|
||||
git add numbers &&
|
||||
git add "$weird_name" numbers &&
|
||||
git commit -m initial &&
|
||||
git tag v1.0 &&
|
||||
git tag -a -m v1.1 v1.1 &&
|
||||
|
||||
mkdir words &&
|
||||
echo foo >words/important &&
|
||||
@ -161,27 +164,67 @@ test_expect_success 'setup tag_rename' '
|
||||
git tag v2.0 &&
|
||||
|
||||
echo spam >words/to &&
|
||||
echo spam >words/know &&
|
||||
echo eggs >words/know &&
|
||||
git add words
|
||||
git rm "$weird_name" &&
|
||||
git commit -m more.words &&
|
||||
git tag -a -m "Look, ma, I made a tag" v3.0
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'check --tag-rename' '
|
||||
test_expect_success '--tag-rename' '
|
||||
(
|
||||
git clone file://"$(pwd)"/tag_rename tag_rename_actual &&
|
||||
cd tag_rename_actual &&
|
||||
git clone file://"$(pwd)"/metasyntactic tag_rename &&
|
||||
cd tag_rename &&
|
||||
git filter-repo \
|
||||
--tag-rename "":"myrepo-" \
|
||||
--path words &&
|
||||
test_must_fail git cat-file -t v1.0 &&
|
||||
test_must_fail git cat-file -t v1.1 &&
|
||||
test_must_fail git cat-file -t v2.0 &&
|
||||
test_must_fail git cat-file -t v3.0 &&
|
||||
test_must_fail git cat-file -t myrepo-v1.0 &&
|
||||
test_must_fail git cat-file -t myrepo-v1.1 &&
|
||||
test $(git cat-file -t myrepo-v2.0) = commit &&
|
||||
test $(git cat-file -t myrepo-v3.0) = tag
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success '--subdirectory-filter' '
|
||||
(
|
||||
git clone file://"$(pwd)"/metasyntactic subdir_filter &&
|
||||
cd subdir_filter &&
|
||||
git filter-repo \
|
||||
--subdirectory-filter words &&
|
||||
git cat-file --batch-check --batch-all-objects >all-objs &&
|
||||
test_line_count = 10 all-objs &&
|
||||
git log --format=%n --name-only | sort | uniq >filenames &&
|
||||
test_line_count = 6 filenames &&
|
||||
grep ^important$ filenames &&
|
||||
test_must_fail git cat-file -t v1.0 &&
|
||||
test_must_fail git cat-file -t v1.1 &&
|
||||
test $(git cat-file -t v2.0) = commit &&
|
||||
test $(git cat-file -t v3.0) = tag
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success '--to-subdirectory-filter' '
|
||||
(
|
||||
git clone file://"$(pwd)"/metasyntactic to_subdir_filter &&
|
||||
cd to_subdir_filter &&
|
||||
git filter-repo \
|
||||
--to-subdirectory-filter mysubdir &&
|
||||
git cat-file --batch-check --batch-all-objects >all-objs &&
|
||||
test_line_count = 22 all-objs &&
|
||||
git log --format=%n --name-only | sort | uniq >filenames &&
|
||||
test_line_count = 9 filenames &&
|
||||
grep "^\"mysubdir/file\\\\tna\\\\nme\"$" filenames &&
|
||||
grep ^mysubdir/words/important$ filenames &&
|
||||
test $(git cat-file -t v1.0) = commit &&
|
||||
test $(git cat-file -t v1.1) = tag &&
|
||||
test $(git cat-file -t v2.0) = commit &&
|
||||
test $(git cat-file -t v3.0) = tag
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user