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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html