From: Junio C Hamano <gitster@pobox.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org, John Keeping <john@keeping.me.uk>,
Sverre Rabbelier <srabbelier@gmail.com>, Max Horn <max@quendi.de>,
Jonathan Nieder <jrnieder@gmail.com>,
Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
Subject: Re: [PATCH v2 3/6] transport-helper: clarify pushing without refspecs
Date: Thu, 18 Apr 2013 10:28:17 -0700 [thread overview]
Message-ID: <7va9ov7npq.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: 1366258473-12841-4-git-send-email-felipe.contreras@gmail.com
Felipe Contreras <felipe.contreras@gmail.com> writes:
> This has never worked, since it's inception the code simply skips all
> the refs, essentially telling fast-export to do nothing.
Good description.
>
> Let's at least tell the user what's going on.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
> Documentation/gitremote-helpers.txt | 4 ++--
> t/t5801-remote-helpers.sh | 6 +++---
> transport-helper.c | 5 +++--
> 3 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/gitremote-helpers.txt b/Documentation/gitremote-helpers.txt
> index ba7240c..4d26e37 100644
> --- a/Documentation/gitremote-helpers.txt
> +++ b/Documentation/gitremote-helpers.txt
> @@ -162,8 +162,8 @@ Miscellaneous capabilities
> For remote helpers that implement 'import' or 'export', this capability
> allows the refs to be constrained to a private namespace, instead of
> writing to refs/heads or refs/remotes directly.
> - It is recommended that all importers providing the 'import' or 'export'
> - capabilities use this.
> + It is recommended that all importers providing the 'import'
> + capability use this. It's mandatory for 'export'.
As [1/6] said "*:*" does not work and has never worked, and
especially on the push side the patch below makes it clear it was a
glorified no-op, it may be better to say a bit more than "use
this. It's mandatory". It is not like any value makes sense, right?
Perhaps the documentation will be further updated in a later step in
the series to clarify it. Let's read on til the end of the series...
> diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
> index cd1873c..3eeb309 100755
> --- a/t/t5801-remote-helpers.sh
> +++ b/t/t5801-remote-helpers.sh
> @@ -111,13 +111,13 @@ test_expect_success 'pulling without refspecs' '
> compare_refs local2 HEAD server HEAD
> '
>
> -test_expect_failure 'pushing without refspecs' '
> +test_expect_success 'pushing without refspecs' '
> test_when_finished "(cd local2 && git reset --hard origin)" &&
> (cd local2 &&
> echo content >>file &&
> git commit -a -m ten &&
> - GIT_REMOTE_TESTGIT_REFSPEC="" git push) &&
> - compare_refs local2 HEAD server HEAD
> + GIT_REMOTE_TESTGIT_REFSPEC="" test_must_fail git push 2> ../error) &&
> + grep "remote-helper doesn.t support push; refspec needed" error
> '
I somehow like this change that turns a _failure into a _success by
expecting test_must_fail, especially because it is clear why the
tested "push" should fail when you look at the rest of the patch ;-)
Fun.
> diff --git a/transport-helper.c b/transport-helper.c
> index cea787c..4d98567 100644
> --- a/transport-helper.c
> +++ b/transport-helper.c
> @@ -785,6 +785,9 @@ static int push_refs_with_export(struct transport *transport,
> struct string_list revlist_args = STRING_LIST_INIT_NODUP;
> struct strbuf buf = STRBUF_INIT;
>
> + if (!data->refspecs)
> + die("remote-helper doesn't support push; refspec needed");
> +
> helper = get_helper(transport);
>
> write_constant(helper->in, "export\n");
> @@ -795,8 +798,6 @@ static int push_refs_with_export(struct transport *transport,
> char *private;
> unsigned char sha1[20];
>
> - if (!data->refspecs)
> - continue;
> private = apply_refspecs(data->refspecs, data->refspec_nr, ref->name);
> if (private && !get_sha1(private, sha1)) {
> strbuf_addf(&buf, "^%s", private);
next prev parent reply other threads:[~2013-04-18 17:28 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-18 4:14 [PATCH v2 0/6] transport-helper: some clarifications and a fix Felipe Contreras
2013-04-18 4:14 ` [PATCH v2 1/6] transport-helper: clarify *:* refspec Felipe Contreras
2013-04-18 8:24 ` John Keeping
2013-04-18 9:27 ` Felipe Contreras
2013-04-18 9:45 ` John Keeping
2013-04-18 10:02 ` Felipe Contreras
2013-04-18 10:06 ` John Keeping
2013-04-18 17:27 ` Junio C Hamano
2013-04-18 19:07 ` Felipe Contreras
2013-04-18 4:14 ` [PATCH v2 2/6] transport-helper: update refspec documentation Felipe Contreras
2013-04-18 4:14 ` [PATCH v2 3/6] transport-helper: clarify pushing without refspecs Felipe Contreras
2013-04-18 10:11 ` John Keeping
2013-04-18 10:14 ` Felipe Contreras
2013-04-18 10:24 ` John Keeping
2013-04-18 17:29 ` Junio C Hamano
2013-04-18 18:35 ` John Keeping
2013-04-18 17:28 ` Junio C Hamano [this message]
2013-04-19 0:27 ` Eric Sunshine
2013-04-19 0:30 ` Felipe Contreras
2013-04-19 3:41 ` Junio C Hamano
2013-04-18 4:14 ` [PATCH v2 4/6] transport-helper: warn when refspec is not used Felipe Contreras
2013-04-18 17:30 ` Junio C Hamano
2013-04-18 19:12 ` Felipe Contreras
2013-04-18 4:14 ` [PATCH v2 5/6] transport-helper: trivial code shuffle Felipe Contreras
2013-04-18 4:14 ` [PATCH v2 6/6] transport-helper: update remote helper namespace Felipe Contreras
2013-04-18 17:30 ` Junio C Hamano
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=7va9ov7npq.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=felipe.contreras@gmail.com \
--cc=florian.achleitner.2.6.31@gmail.com \
--cc=git@vger.kernel.org \
--cc=john@keeping.me.uk \
--cc=jrnieder@gmail.com \
--cc=max@quendi.de \
--cc=srabbelier@gmail.com \
/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.