From: Junio C Hamano <gitster@pobox.com>
To: Johannes Schindelin <johannes.schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v2 1/3] for-each-ref: let upstream/push optionally report the remote name
Date: Wed, 11 Oct 2017 11:07:28 +0900 [thread overview]
Message-ID: <xmqqinfmo2sf.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: 964525df50e6d35847bcf57b0fe0949c99f0dbca.1507205895.git.johannes.schindelin@gmx.de
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> The implementation chooses *not* to DWIM the push remote if no explicit
> push remote was configured; The reason is that it is possible to DWIM this
> by using
>
> %(if)%(push:remotename)%(then)
> %(push:remotename)
> %(else)
> %(upstream:remotename)
> %(end)
>
> while it would be impossible to "un-DWIM" the information in case the
> caller is really only interested in explicit push remotes.
Good.
> Note: the dashless, non-CamelCased form `:remotename` follows the
> example of the `:trackshort` example.
Good. Come to think of it, aside from modifiers, the use of
squashedwords like committerdate and objecttype has long been the
norm in the for-each-ref atom names, so "remotename" is much more in
line with other formats.
> @@ -1354,16 +1371,20 @@ static void populate_value(struct ref_array_item *ref)
> if (refname)
> fill_remote_ref_details(atom, refname, branch, &v->s);
> continue;
> - } else if (starts_with(name, "push")) {
> + } else if (atom->u.remote_ref.push) {
> const char *branch_name;
> if (!skip_prefix(ref->refname, "refs/heads/",
> &branch_name))
> continue;
> branch = branch_get(branch_name);
>
> - refname = branch_get_push(branch, NULL);
> - if (!refname)
> - continue;
> + if (atom->u.remote_ref.push_remote)
> + refname = NULL;
> + else {
> + refname = branch_get_push(branch, NULL);
> + if (!refname)
> + continue;
> + }
> fill_remote_ref_details(atom, refname, branch, &v->s);
It still feels a bit strange to pass NULL refname to
fill_remote_ref_details() function, but fixing it would require
overhaul of this if/else if cascade, I think, so let's not worry too
much about it at least for now.
Looks much better than the previous one. Thanks. Queued.
next prev parent reply other threads:[~2017-10-11 2:07 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-02 13:56 [PATCH 0/3] for-each-ref: add :remote-ref and :remote-name specifiers Johannes Schindelin
2017-10-02 13:56 ` [PATCH 1/3] for-each-ref: let upstream/push optionally report the remote name Johannes Schindelin
2017-10-04 7:14 ` Junio C Hamano
2017-10-04 9:08 ` Junio C Hamano
2017-10-05 12:20 ` Johannes Schindelin
2017-10-02 13:57 ` [PATCH 2/3] for-each-ref: let upstream/push optionally report merge name Johannes Schindelin
2017-10-04 9:12 ` Junio C Hamano
2017-10-04 11:41 ` Junio C Hamano
2017-10-05 9:14 ` Junio C Hamano
2017-10-02 13:57 ` [PATCH 3/3] for-each-ref: test :remote-name and :remote-ref Johannes Schindelin
2017-10-05 1:54 ` [PATCH 0/3] for-each-ref: add :remote-ref and :remote-name specifiers Junio C Hamano
2017-10-05 12:19 ` [PATCH v2 0/3] for-each-ref: add :remoteref and :remotename specifiers Johannes Schindelin
2017-10-05 12:19 ` [PATCH v2 1/3] for-each-ref: let upstream/push optionally report the remote name Johannes Schindelin
2017-10-10 9:35 ` Junio C Hamano
2017-10-11 2:07 ` Junio C Hamano [this message]
2017-10-05 12:19 ` [PATCH v2 2/3] for-each-ref: let upstream/push optionally remote ref name Johannes Schindelin
2017-10-06 5:10 ` Junio C Hamano
2017-10-11 5:58 ` Junio C Hamano
2017-10-12 19:13 ` Johannes Schindelin
2017-10-13 0:30 ` Junio C Hamano
2017-10-15 16:02 ` Johannes Schindelin
2017-10-13 16:39 ` Kevin Daudt
2017-10-14 2:08 ` Junio C Hamano
2017-10-15 16:05 ` Johannes Schindelin
2017-10-16 1:50 ` Junio C Hamano
2017-10-16 11:39 ` Johannes Schindelin
2017-10-05 12:19 ` [PATCH v2 3/3] for-each-ref: test :remotename and :remoteref Johannes Schindelin
2017-11-07 16:30 ` [PATCH v3 0/3] for-each-ref: add :remoteref and :remotename specifiers Johannes Schindelin
2017-11-07 16:30 ` [PATCH v3 1/3] for-each-ref: let upstream/push optionally report the remote name Johannes Schindelin
2017-11-07 16:31 ` [PATCH v3 2/3] for-each-ref: let upstream/push report the remote ref name Johannes Schindelin
2017-11-07 16:31 ` [PATCH v3 3/3] for-each-ref: test :remotename and :remoteref Johannes Schindelin
2017-11-08 1:36 ` [PATCH v3 0/3] for-each-ref: add :remoteref and :remotename specifiers 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=xmqqinfmo2sf.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
/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.