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