This patch series originated in response to the following thread: http://thread.gmane.org/gmane.comp.version-control.git/208354 I made some adjustments based on Junio's last round of feedback including a new patch reworking the "push rules" comment in remote.c. Also refined some of the log messages--nothing major. Finally, took a stab at putting something together for the release notes, see below. Chris Release notes: "git push" no longer updates tags (lightweight or annotated) by default. Specifically, if the destination reference already exists and is under refs/tags/ or it points to a tag object, it is not allowed to fast- forward (unless forced using +A:B notation or by passing --force.) This is consistent with how a tag is normally thought of: a reference that does not move once defined. It also ensures a push will not inadvertently clobber an already existing tag--something that can go unnoticed if fast-forwarding is allowed. Chris Rorvick (8): push: return reject reasons as a bitset push: add advice for rejected tag reference push: flag updates push: flag updates that require force push: require force for refs under refs/tags/ push: require force for annotated tags push: clarify rejection of update to non-commit-ish push: cleanup push rules comment Documentation/git-push.txt | 9 ++--- builtin/push.c | 24 +++++++++----- builtin/send-pack.c | 9 +++-- cache.h | 7 +++- remote.c | 83 +++++++++++++++++++++++++++++++++++----------- send-pack.c | 1 + t/t5516-fetch-push.sh | 44 +++++++++++++++++++++++- transport-helper.c | 6 ++++ transport.c | 25 ++++++++------ transport.h | 10 +++--- 10 files changed, 167 insertions(+), 51 deletions(-) -- 1.8.0.158.g0c4328c -- 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