mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
Merge branch 'ab/fetch-tags-noclobber'
Test and doc clean-ups. * ab/fetch-tags-noclobber: pull doc: fix a long-standing grammar error fetch tests: correct a comment "remove it" -> "remove them" push tests: assert re-pushing annotated tags push tests: add more testing for forced tag pushing push tests: fix logic error in "push" test assertion push tests: remove redundant 'git push' invocation fetch tests: change "Tag" test tag to "testTag"
This commit is contained in:
commit
42a6274b62
@ -33,7 +33,7 @@ name.
|
||||
it requests fetching everything up to the given tag.
|
||||
+
|
||||
The remote ref that matches <src>
|
||||
is fetched, and if <dst> is not empty string, the local
|
||||
is fetched, and if <dst> is not an empty string, the local
|
||||
ref that matches it is fast-forwarded using <src>.
|
||||
If the optional plus `+` is used, the local ref
|
||||
is updated even if it does not result in a fast-forward
|
||||
|
@ -648,7 +648,7 @@ test_configured_prune_type () {
|
||||
git rev-parse --verify refs/tags/newtag
|
||||
) &&
|
||||
|
||||
# now remove it
|
||||
# now remove them
|
||||
git branch -d newbranch &&
|
||||
git tag -d newtag &&
|
||||
|
||||
|
@ -965,26 +965,51 @@ test_expect_success 'push into aliased refs (inconsistent)' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'push requires --force to update lightweight tag' '
|
||||
mk_test testrepo heads/master &&
|
||||
mk_child testrepo child1 &&
|
||||
mk_child testrepo child2 &&
|
||||
(
|
||||
cd child1 &&
|
||||
git tag Tag &&
|
||||
git push ../child2 Tag &&
|
||||
git push ../child2 Tag &&
|
||||
>file1 &&
|
||||
git add file1 &&
|
||||
git commit -m "file1" &&
|
||||
git tag -f Tag &&
|
||||
test_must_fail git push ../child2 Tag &&
|
||||
git push --force ../child2 Tag &&
|
||||
git tag -f Tag &&
|
||||
test_must_fail git push ../child2 Tag HEAD~ &&
|
||||
git push --force ../child2 Tag
|
||||
)
|
||||
'
|
||||
test_force_push_tag () {
|
||||
tag_type_description=$1
|
||||
tag_args=$2
|
||||
|
||||
test_expect_success 'force pushing required to update lightweight tag' "
|
||||
mk_test testrepo heads/master &&
|
||||
mk_child testrepo child1 &&
|
||||
mk_child testrepo child2 &&
|
||||
(
|
||||
cd child1 &&
|
||||
git tag testTag &&
|
||||
git push ../child2 testTag &&
|
||||
>file1 &&
|
||||
git add file1 &&
|
||||
git commit -m 'file1' &&
|
||||
git tag $tag_args testTag &&
|
||||
test_must_fail git push ../child2 testTag &&
|
||||
git push --force ../child2 testTag &&
|
||||
git tag $tag_args testTag HEAD~ &&
|
||||
test_must_fail git push ../child2 testTag &&
|
||||
git push --force ../child2 testTag &&
|
||||
|
||||
# Clobbering without + in refspec needs --force
|
||||
git tag -f testTag &&
|
||||
test_must_fail git push ../child2 'refs/tags/*:refs/tags/*' &&
|
||||
git push --force ../child2 'refs/tags/*:refs/tags/*' &&
|
||||
|
||||
# Clobbering with + in refspec does not need --force
|
||||
git tag -f testTag HEAD~ &&
|
||||
git push ../child2 '+refs/tags/*:refs/tags/*' &&
|
||||
|
||||
# Clobbering with --no-force still obeys + in refspec
|
||||
git tag -f testTag &&
|
||||
git push --no-force ../child2 '+refs/tags/*:refs/tags/*' &&
|
||||
|
||||
# Clobbering with/without --force and 'tag <name>' format
|
||||
git tag -f testTag HEAD~ &&
|
||||
test_must_fail git push ../child2 tag testTag &&
|
||||
git push --force ../child2 tag testTag
|
||||
)
|
||||
"
|
||||
}
|
||||
|
||||
test_force_push_tag "lightweight tag" "-f"
|
||||
test_force_push_tag "annotated tag" "-f -a -m'msg'"
|
||||
|
||||
test_expect_success 'push --porcelain' '
|
||||
mk_empty testrepo &&
|
||||
|
Loading…
Reference in New Issue
Block a user