[PATCH v6 0/8] push: update remote tags only with force
- From
Chris Rorvick <chris@rorvick.com>
- Date
- Nov 30, 2012, 01:41 UTC
- Message-ID
- <1354239700-3325-1-git-send-email-chris@rorvick.com>
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