From: Michael J Gruber <git@drmicha.warpmail.net>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>
Subject: Re: [PATCH 5/5] branch: show upstream branch when double verbose
Date: Tue, 07 Apr 2009 10:02:34 +0200 [thread overview]
Message-ID: <49DB089A.7080207@drmicha.warpmail.net> (raw)
In-Reply-To: <20090407071656.GE2924@coredump.intra.peff.net>
Jeff King venit, vidit, dixit 07.04.2009 09:16:
> This information is easily accessible when we are
> calculating the relationship. The only reason not to print
> it all the time is that it consumes a fair bit of screen
> space, and may not be of interest to the user.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> This one is very RFC. Should this information be part of the regular
> "-v"? Should it be part of "git branch" with regular verbosity?
>
> Should the format be different? I wonder if
>
> master 1234abcd [origin/master: ahead 5, behind 6] whatever
>
> will be interpreted as "origin/master is ahead 5, behind 6" when it is
> really the reverse. Maybe "[ahead 5, behind 6 from origin/master]" would
> be better?
Maybe [origin/master +5 -6]? That should be short enough for sticking it
into -v. We could even use [origin/master +0 -0] for an up-to-date
branch then.
In any case, I think often one is interested in one branch only. I would
expect "git branch -v foo" to give me the -v info just for branch foo.
Currently it does not. But that would be an independent patch on top.
> Documentation/git-branch.txt | 4 +++-
> builtin-branch.c | 23 +++++++++++++++++------
> 2 files changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
> index 31ba7f2..ba3dea6 100644
> --- a/Documentation/git-branch.txt
> +++ b/Documentation/git-branch.txt
> @@ -100,7 +100,9 @@ OPTIONS
>
> -v::
> --verbose::
> - Show sha1 and commit subject line for each head.
> + Show sha1 and commit subject line for each head, along with
> + relationship to upstream branch (if any). If given twice, print
> + the name of the upstream branch, as well.
>
> --abbrev=<length>::
> Alter the sha1's minimum display length in the output listing.
> diff --git a/builtin-branch.c b/builtin-branch.c
> index ca81d72..3275821 100644
> --- a/builtin-branch.c
> +++ b/builtin-branch.c
> @@ -301,19 +301,30 @@ static int ref_cmp(const void *r1, const void *r2)
> return strcmp(c1->name, c2->name);
> }
>
> -static void fill_tracking_info(struct strbuf *stat, const char *branch_name)
> +static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
> + int show_upstream_ref)
> {
> int ours, theirs;
> struct branch *branch = branch_get(branch_name);
>
> - if (!stat_tracking_info(branch, &ours, &theirs) || (!ours && !theirs))
> + if (!stat_tracking_info(branch, &ours, &theirs)) {
> + if (branch && branch->merge && branch->merge[0]->dst &&
> + show_upstream_ref)
> + strbuf_addf(stat, "[%s] ",
> + shorten_unambiguous_ref(branch->merge[0]->dst));
> return;
> + }
> +
> + strbuf_addch(stat, '[');
> + if (show_upstream_ref)
> + strbuf_addf(stat, "%s: ",
> + shorten_unambiguous_ref(branch->merge[0]->dst));
> if (!ours)
> - strbuf_addf(stat, "[behind %d] ", theirs);
> + strbuf_addf(stat, "behind %d] ", theirs);
> else if (!theirs)
> - strbuf_addf(stat, "[ahead %d] ", ours);
> + strbuf_addf(stat, "ahead %d] ", ours);
> else
> - strbuf_addf(stat, "[ahead %d, behind %d] ", ours, theirs);
> + strbuf_addf(stat, "ahead %d, behind %d] ", ours, theirs);
> }
>
> static int matches_merge_filter(struct commit *commit)
> @@ -379,7 +390,7 @@ static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
> }
>
> if (item->kind == REF_LOCAL_BRANCH)
> - fill_tracking_info(&stat, item->name);
> + fill_tracking_info(&stat, item->name, verbose > 1);
>
> strbuf_addf(&out, " %s %s%s",
> find_unique_abbrev(item->commit->object.sha1, abbrev),
next prev parent reply other threads:[~2009-04-07 8:04 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-07 7:02 [RFC/PATCH 0/5] making upstream branch information accessible Jeff King
2009-04-07 7:05 ` [PATCH 1/5] for-each-ref: refactor get_short_ref function Jeff King
2009-04-07 7:06 ` [PATCH 2/5] for-each-ref: refactor refname handling Jeff King
2009-04-08 6:22 ` Junio C Hamano
2009-04-08 6:27 ` Jeff King
2009-04-07 7:09 ` [PATCH 3/5] for-each-ref: add "upstream" format field Jeff King
2009-04-07 7:14 ` [PATCH 4/5] make get_short_ref a public function Jeff King
2009-04-07 7:39 ` Bert Wesarg
2009-04-09 8:18 ` Jeff King
2009-04-09 9:05 ` Bert Wesarg
2009-04-13 8:15 ` Jeff King
2009-04-07 7:57 ` Michael J Gruber
2009-04-07 7:16 ` [PATCH 5/5] branch: show upstream branch when double verbose Jeff King
2009-04-07 8:02 ` Michael J Gruber [this message]
2009-04-09 8:23 ` Jeff King
2009-04-09 10:15 ` Santi Béjar
2009-04-13 8:34 ` Jeff King
2009-04-13 17:04 ` Wincent Colaiuta
2009-04-07 8:12 ` Paolo Ciarrocchi
2009-04-07 7:33 ` [PATCH] for-each-ref: remove multiple xstrdup() in get_short_ref() Bert Wesarg
2009-04-07 7:44 ` Jeff King
2009-04-07 7:54 ` Bert Wesarg
2009-04-07 21:41 ` Jeff King
2009-04-07 7:44 ` Bert Wesarg
-- strict thread matches above, loose matches on Subject: below --
2008-09-22 9:09 [PATCH 1/3] for-each-ref: utilize core.warnambiguousrefs for strict refname:short format Bert Wesarg
2008-09-22 9:09 ` [PATCH 2/3] for-each-ref: factor out get_short_ref() into refs.c:abbreviate_refname() Bert Wesarg
2008-09-22 9:09 ` [PATCH 3/3] git abbref-ref: new porcelain for abbreviate_ref() Bert Wesarg
2008-09-22 15:32 ` Shawn O. Pearce
2008-09-22 15:55 ` Junio C Hamano
2008-09-22 16:45 ` Bert Wesarg
2008-09-22 16:43 ` Bert Wesarg
2008-09-22 16:27 ` [PATCH 1/3] for-each-ref: utilize core.warnambiguousrefs for strict refname:short format Junio C Hamano
2008-09-22 18:00 ` Bert Wesarg
2008-10-17 23:58 ` Junio C Hamano
2008-10-18 1:50 ` Shawn O. Pearce
2008-10-18 6:55 ` Bert Wesarg
2009-04-11 17:14 ` [PATCH&RFC] get_short_ref(): add strict mode Bert Wesarg
2009-04-11 19:23 ` Junio C Hamano
2009-04-11 19:50 ` Bert Wesarg
2009-04-11 20:35 ` [PATCH] for-each-ref: refname:short utilize core.warnAmbiguousRefs Bert Wesarg
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=49DB089A.7080207@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=paolo.ciarrocchi@gmail.com \
--cc=peff@peff.net \
/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.