This patch set can be divided into two sets: 1. Provide useful advice for rejected tag references. push: return reject reasons via a mask push: add advice for rejected tag reference Recommending a merge to resolve a rejected tag update seems nonsensical since the tag does not come along for the ride. These patches change the advice for rejected tags to suggest using "push -f". 2. Require force when updating tag references, even on a fast-forward. push: flag updates push: flag updates that require force push: update remote tags only with force This is in response to the following thread: http://thread.gmane.org/gmane.comp.version-control.git/208354 This solution prevents fast-forwards if the reference is of the refs/tags/* hierarchy or if the old object is not a commit. These patches contain the following updates since the v3 set: * builtin/push.c: Remove "push --force" suggestion from advice. * remote.c: Only require old object to be a commit to be forwardable. I added the check for object types based comments from Peff in original thread, and I think this implementation is actually what he intended. If the new object is a tag, the operation is not destructive so there is no reason to block it (at least within the scope of these changes) as was done in the previous iteration. * t/t5516-fetch-push.sh: Create separate tests for the lightweight and annotated cases. Do the annotated tests outside of refs/tags/ so that it actually tests different functionality. Chris Rorvick (5): push: return reject reasons via a mask push: add advice for rejected tag reference push: flag updates push: flag updates that require force push: update remote tags only with force Documentation/git-push.txt | 10 +++++----- builtin/push.c | 24 +++++++++++++++--------- builtin/send-pack.c | 9 +++++++-- cache.h | 7 ++++++- remote.c | 46 ++++++++++++++++++++++++++++++++++++---------- send-pack.c | 1 + t/t5516-fetch-push.sh | 30 +++++++++++++++++++++++++++++- transport-helper.c | 6 ++++++ transport.c | 25 +++++++++++++++---------- transport.h | 10 ++++++---- 10 files changed, 126 insertions(+), 42 deletions(-) -- 1.8.0.155.g3a063ad.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html