Re: [PATCH] branch: add show-tracking option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Duy Nguyen <pclouds@xxxxxxxxx> writes:

> On Thu, May 16, 2013 at 3:40 PM, Michael J Gruber
> <git@xxxxxxxxxxxxxxxxxxxx> wrote:
>>> What if I want something in -vvvv except some in -vv? I think to avoid
>>> option explosion, maybe we can adopt --pretty=format:xxx from "git
>>> log" and let the user decideswhat (and how) to display. "pretty" code
>>> learns about alignment already, which may be useful here.
>>> --
>>> Duy
>>
>> Sure, that is the big solution we've been talking about. Unify
>> for-each-ref formats and log formats and use that. After all, "git
>> branch" in list mode really is for-each-ref, and should be transparently
>> so; same goes for "git tag". Think "git rev-list" and "git ref-list"!
>
> Again I forgot about for-each-ref. Sounds like sharing code between
> for-each-ref and branch is a good thing to do. Then just add more
> candy placeholders from git-log like %C(xx). Sounds like a fun topic.
>
>> But I guess we'll be compabeaten ;)
>
> No idea what that last word means :(

Me either, but I agree that "verbosity level" is a bad match for
this kind of thing.

You need to be able to pick and choose what are shown, and the user
preferences are not a linear progression that can be expressed with
a simple number of 'v's.

You may not need the level of flexibility the format string gives
you to choose not just what are shown but how they are shown, but if
we can teach the internal machinery of for-each-ref to compute the
kind of information it does not currently know, reusing the mechanism
will give us the output for free.

What are the current repertoire that we can pick from?

 * HEADness
 * branch name
 * abbreviated object name of the tip commit
 * name of @{u}
   * ahead/behind [*1*]
 * title of the tip commit

So the current "-v -v" format may look something like this:

    %(headness)%(refname:short)%(objectname:short)%(upstream)%(subject)

where

    %(headness) expands to either "  " or "* "
    %(upstream) expands to "[remotes/origin/master: ahead 2, behind 47] "

The more expensive ": ahead 2, behind 47" can be omitted by spelling
%(upstream:short), for example.


[Footnote]

*1* indented because this is dependent of @{u}; showing ahead/behind
    without showing @{u} would not make any sense.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]