From: Olivier Marin <dkr+ml.git@free.fr>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: [PATCH] remote show: fix the -n option
Date: Mon, 09 Jun 2008 02:48:12 +0200 [thread overview]
Message-ID: <484C7DCC.6080303@free.fr> (raw)
In-Reply-To: <484C7CBE.4070700@free.fr>
From: Olivier Marin <dkr@freesurf.fr>
The perl version accepted a -n flag, to show local informations only
without querying remote heads, that seems to have been lost in the C
rewrite.
This restores the older behaviour and add a test case.
Signed-off-by: Olivier Marin <dkr@freesurf.fr>
---
builtin-remote.c | 48 ++++++++++++++++++++++++++----------------------
t/t5505-remote.sh | 17 +++++++++++++++++
2 files changed, 43 insertions(+), 22 deletions(-)
diff --git a/builtin-remote.c b/builtin-remote.c
index c49f00f..cb9e282 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -421,10 +421,10 @@ static void show_list(const char *title, struct path_list *list)
static int show_or_prune(int argc, const char **argv, int prune)
{
- int dry_run = 0, result = 0;
+ int no_query = 0, result = 0;
struct option options[] = {
OPT_GROUP("show specific options"),
- OPT__DRY_RUN(&dry_run),
+ OPT_BOOLEAN('n', NULL, &no_query, "do not query remotes"),
OPT_END()
};
struct ref_states states;
@@ -442,21 +442,25 @@ static int show_or_prune(int argc, const char **argv, int prune)
struct transport *transport;
const struct ref *ref;
struct strbuf buf;
- int i, got_states;
+ int i, got_states = 1;
states.remote = remote_get(*argv);
if (!states.remote)
return error("No such remote: %s", *argv);
- transport = transport_get(NULL, states.remote->url_nr > 0 ?
- states.remote->url[0] : NULL);
- ref = transport_get_remote_refs(transport);
- transport_disconnect(transport);
read_branches();
- got_states = get_ref_states(ref, &states);
- if (got_states)
- result = error("Error getting local info for '%s'",
- states.remote->name);
+
+ if (!no_query) {
+ transport = transport_get(NULL, states.remote->url_nr > 0 ?
+ states.remote->url[0] : NULL);
+ ref = transport_get_remote_refs(transport);
+ transport_disconnect(transport);
+
+ got_states = get_ref_states(ref, &states);
+ if (got_states)
+ result = error("Error getting local info for '%s'",
+ states.remote->name);
+ }
if (prune) {
for (i = 0; i < states.stale.nr; i++) {
@@ -486,17 +490,17 @@ static int show_or_prune(int argc, const char **argv, int prune)
printf("\n");
}
- if (got_states)
- continue;
- strbuf_init(&buf, 0);
- strbuf_addf(&buf, " New remote branch%%s (next fetch will "
- "store in remotes/%s)", states.remote->name);
- show_list(buf.buf, &states.new);
- strbuf_release(&buf);
- show_list(" Stale tracking branch%s (use 'git remote prune')",
- &states.stale);
- show_list(" Tracked remote branch%s",
- &states.tracked);
+ if (!got_states) {
+ strbuf_init(&buf, 0);
+ strbuf_addf(&buf, " New remote branch%%s (next fetch will "
+ "store in remotes/%s)", states.remote->name);
+ show_list(buf.buf, &states.new);
+ strbuf_release(&buf);
+ show_list(" Stale tracking branch%s (use 'git remote prune')",
+ &states.stale);
+ show_list(" Tracked remote branch%s",
+ &states.tracked);
+ }
if (states.remote->push_refspec_nr) {
printf(" Local branch%s pushed with 'git push'\n ",
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index 0d7ed1f..c6a7bfb 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -138,6 +138,23 @@ test_expect_success 'show' '
test_cmp expect output)
'
+cat > test/expect << EOF
+* remote origin
+ URL: $(pwd)/one/.git
+ Remote branch merged with 'git pull' while on branch master
+ master
+ Local branches pushed with 'git push'
+ master:upstream +refs/tags/lastbackup
+EOF
+
+test_expect_success 'show -n' '
+ (mv one one.unreachable &&
+ cd test &&
+ git remote show -n origin > output &&
+ mv ../one.unreachable ../one &&
+ test_cmp expect output)
+'
+
test_expect_success 'prune' '
(cd one &&
git branch -m side side2) &&
-- 1.5.6.rc2.121.gaeb64.dirty
next prev parent reply other threads:[~2008-06-09 0:48 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-08 0:54 remote show/prune: strange -n(--dry-run) option Olivier Marin
2008-06-08 11:03 ` [PATCH] Documentation/git-remote.txt: remove description for useless -n option Olivier Marin
2008-06-08 12:22 ` dkr+ml.git
2008-06-08 20:27 ` Junio C Hamano
2008-06-09 0:43 ` Olivier Marin
2008-06-09 0:48 ` Olivier Marin [this message]
2008-06-09 1:16 ` [PATCH] remote show: fix the " Johannes Schindelin
2008-06-09 2:06 ` Olivier Marin
2008-06-09 2:35 ` Johannes Schindelin
2008-06-09 4:16 ` Olivier Marin
2008-06-09 4:53 ` Johannes Schindelin
2008-06-09 14:22 ` Olivier Marin
2008-06-09 15:43 ` Olivier Marin
2008-06-09 16:31 ` Johannes Schindelin
2008-06-09 15:58 ` [PATCH v2] " Olivier Marin
2008-06-09 16:35 ` Johannes Schindelin
2008-06-09 16:58 ` Olivier Marin
2008-06-09 17:56 ` Johannes Schindelin
2008-06-09 18:37 ` Olivier Marin
2008-06-09 20:11 ` [PATCH] builtin-remote: make reuse of code easier by not die()ing Johannes Schindelin
2008-06-09 20:43 ` Olivier Marin
2008-06-10 1:10 ` [PATCH v2] remote show: fix the -n option Junio C Hamano
2008-06-10 1:19 ` Shawn O. Pearce
2008-06-10 2:39 ` Johannes Schindelin
2008-06-10 14:50 ` [PATCH 0/4] remote show/prune improvement Olivier Marin
2008-06-10 14:51 ` [PATCH 1/4] remote show: fix the -n option Olivier Marin
2008-06-10 14:51 ` [PATCH 2/4] builtin-remote: split show_or_prune() in two separate functions Olivier Marin
2008-06-10 14:51 ` [PATCH 3/4] remote prune: print the list of pruned branches Olivier Marin
2008-06-12 7:00 ` Junio C Hamano
2008-06-12 11:07 ` Olivier Marin
2008-06-10 14:51 ` [PATCH 4/4] remote show: list tracked remote branches with -n Olivier Marin
2008-06-10 19:12 ` Junio C Hamano
2008-06-10 22:54 ` [PATCH v2 " Olivier Marin
2008-06-10 15:09 ` [PATCH 0/4] remote show/prune improvement Jakub Narebski
2008-06-10 16:10 ` Olivier Marin
2008-06-10 17:11 ` Jakub Narebski
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=484C7DCC.6080303@free.fr \
--to=dkr+ml.git@free.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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.