All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: John Keeping <john@keeping.me.uk>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] push: allow pushing new branches with --force-with-lease
Date: Mon, 25 Jul 2016 15:11:14 -0700	[thread overview]
Message-ID: <xmqq37mx4bct.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <xmqq4m7d7hlq.fsf@gitster.mtv.corp.google.com> (Junio C. Hamano's message of "Mon, 25 Jul 2016 10:28:01 -0700")

Junio C Hamano <gitster@pobox.com> writes:

> I suspect that the if/else cascade in the loop in apply_cas() can
> also be taught that ':' followed by an empty string asks to check
> that the target ref does not exist, in order to make it a bit more
> useful for folks who do not rely on the "use the last observed
> status of the tracking branch".
>
> That would make the "explicit" test much less cumbersome to read.

In other words, something like this, perhaps?

 remote.c            |  2 ++
 t/t5533-push-cas.sh | 12 ++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/remote.c b/remote.c
index b35ffd9..55812d8 100644
--- a/remote.c
+++ b/remote.c
@@ -2303,6 +2303,8 @@ int parse_push_cas_option(struct push_cas_option *cas, const char *arg, int unse
 	entry = add_cas_entry(cas, arg, colon - arg);
 	if (!*colon)
 		entry->use_tracking = 1;
+	else if (!colon[1])
+		hashclr(entry->expect);
 	else if (get_sha1(colon + 1, entry->expect))
 		return error("cannot parse expected object name '%s'", colon + 1);
 	return 0;
diff --git a/t/t5533-push-cas.sh b/t/t5533-push-cas.sh
index 4276b1b..04f4636 100755
--- a/t/t5533-push-cas.sh
+++ b/t/t5533-push-cas.sh
@@ -215,6 +215,18 @@ test_expect_success 'new branch covered by force-with-lease (explicit)' '
 	test_cmp expect actual
 '
 
+test_expect_success 'new branch covered by force-with-lease (less cumbersome)' '
+	setup_srcdst_basic &&
+	(
+		cd dst &&
+		git branch another master &&
+		git push --force-with-lease=another: origin another
+	) &&
+	git ls-remote dst refs/heads/another >expect &&
+	git ls-remote src refs/heads/another >actual &&
+	test_cmp expect actual
+'
+
 test_expect_success 'new branch already exists' '
 	setup_srcdst_basic &&
 	(
-- 
2.9.2-629-gdd92683


      parent reply	other threads:[~2016-07-25 22:11 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-23 15:31 [PATCH] push: allow pushing new branches with --force-with-lease John Keeping
2016-07-25 17:28 ` Junio C Hamano
2016-07-25 21:59   ` [PATCH v2 0/3] " John Keeping
2016-07-25 21:59     ` [PATCH v2 1/3] Documentation/git-push: fix placeholder formatting John Keeping
2016-07-25 21:59     ` [PATCH v2 2/3] push: add shorthand for --force-with-lease branch creation John Keeping
2016-07-25 22:22       ` Junio C Hamano
2016-07-26  8:03         ` John Keeping
2016-07-26 19:59           ` Junio C Hamano
2016-07-26 20:42             ` John Keeping
2016-07-26 21:19               ` Junio C Hamano
2016-07-26 10:30       ` Jakub Narębski
2016-07-26 11:19         ` John Keeping
2016-07-25 21:59     ` [PATCH v2 3/3] push: allow pushing new branches with --force-with-lease John Keeping
2016-07-25 22:21     ` [PATCH v2 0/3] " Junio C Hamano
2016-07-26 20:44     ` [PATCH v3 " John Keeping
2016-07-26 20:44       ` [PATCH v3 1/3] Documentation/git-push: fix placeholder formatting John Keeping
2016-07-26 20:44       ` [PATCH v3 2/3] push: add shorthand for --force-with-lease branch creation John Keeping
2016-07-26 20:44       ` [PATCH v3 3/3] push: allow pushing new branches with --force-with-lease John Keeping
2016-07-25 22:11   ` Junio C Hamano [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq37mx4bct.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=john@keeping.me.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.