summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorChris Rorvick <chris@rorvick.com>2012-11-29 19:41:37 -0600
committerJunio C Hamano <gitster@pobox.com>2012-12-02 01:44:34 -0800
commitdbfeddb12e5bb540ed3c852eebda3df9117bd150 (patch)
tree7c5c6582390c7dabd839b72fafd074b4323b23d9 /builtin
parent8c5f6f717d136c5a0e9d6d3879bf2a7bdeb42154 (diff)
downloadgit-dbfeddb12e5bb540ed3c852eebda3df9117bd150.tar.gz
push: require force for refs under refs/tags/
References are allowed to update from one commit-ish to another if the former is an ancestor of the latter. This behavior is oriented to branches which are expected to move with commits. Tag references are expected to be static in a repository, though, thus an update to something under refs/tags/ should be rejected unless the update is forced. Signed-off-by: Chris Rorvick <chris@rorvick.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/push.c2
-rw-r--r--builtin/send-pack.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/builtin/push.c b/builtin/push.c
index e08485d123..83a3cc80c3 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -222,7 +222,7 @@ static const char message_advice_checkout_pull_push[] =
static const char message_advice_ref_already_exists[] =
N_("Updates were rejected because the destination reference already exists\n"
- "in the remote and the update is not a fast-forward.");
+ "in the remote.");
static void advise_pull_before_push(void)
{
diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index 9f986077aa..f849e0a4a0 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -44,6 +44,11 @@ static void print_helper_status(struct ref *ref)
msg = "non-fast forward";
break;
+ case REF_STATUS_REJECT_ALREADY_EXISTS:
+ res = "error";
+ msg = "already exists";
+ break;
+
case REF_STATUS_REJECT_NODELETE:
case REF_STATUS_REMOTE_REJECT:
res = "error";