From: John Keeping <john@keeping.me.uk>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
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 11:11:33 +0100 [thread overview]
Message-ID: <20130418101133.GW2278@serenity.lan> (raw)
In-Reply-To: <1366258473-12841-4-git-send-email-felipe.contreras@gmail.com>
On Wed, Apr 17, 2013 at 11:14:30PM -0500, Felipe Contreras wrote:
> This has never worked, since it's inception the code simply skips all
> the refs, essentially telling fast-export to do nothing.
>
> 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'.
s/It's/It is/
> +
> A helper advertising the capability
> `refspec refs/heads/*:refs/svn/origin/branches/*`
> 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
> '
>
> test_expect_success 'pulling without marks' '
> 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");
I think the "refspec needed" text is likely to be confusing if an
end-user ever sees this message. I'm not sure how we can provide useful
feedback for both remote helper authors and end-users though.
> +
> 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);
> --
> 1.8.2.1.679.g509521a
next prev parent reply other threads:[~2013-04-18 10:11 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 [this message]
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
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=20130418101133.GW2278@serenity.lan \
--to=john@keeping.me.uk \
--cc=felipe.contreras@gmail.com \
--cc=florian.achleitner.2.6.31@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--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.