Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Improving git branch

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:03:18

John Tapsell [off-list ref] writes:
  I'm interested in putting in some time and effort into improving the
output of "git branch".

  What I'm thinking is an output like this:

$ git branch

2014-12-17 * (detached from origin/master)     deaba04 Do stuff
2014-12-15   john.ta/add_timing_info                6edbcfa  Add timing stuff
2014-12-14   master                                          8537316
[origin/master: ahead 1, behind 16] Some stuff
2014-12-12   john.ta/new_reduce_memory       99d84db Reintroduce: memory stuff
2014-12-05   john.ta/bugfixes                            e15c95e Add stuff
2014-12-03   john.ta/container                           e9fd4e5 This
branch is a test bed for containers


(These columns are supposed to be all aligned nicely..)

So, features:

1. Show the date of the last commit
2. Sort by date.  Most recently used branches at the top
3. Show the branch name, including your current "branch", with a * to
indicate that it's checked out.
4. Show the sha
5. Show the branch DESCRIPTION - and if that's not available, show the
short-line of the most recent commit.

There is also a small amount of color here that I can't paste here, to
follow the coloring in the current git branch.

Before I start making patches etc, what do people think?  Would I have
a chance of getting this in?  Should I change some aspects etc?
Three random points:

 * A single output format can never be favourite of everybody, so
   this needs to be more like

	$ git branch --format='%(committerdate) %(refname) %(subject)'

   optionally with branch.format configuration variable to let the
   user specify the default.

 * I am not sure if the "current" marker should be anywhere but the
   frontmost column in the recommended default.  The output from the
   command obviously is not meant for machine processing
   (e.g. sorting or grepping), so this point is minor, though.

 * I do not think the object name should take valuable screen real
   estate, again in the built-in default (I wouldn't mind people
   hurting themselves with their configuration at all ;-).  After
   looking at "git branch --pretty-long" output, people can give any
   command john.ta/bugfixes instead of e15c95e, no?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help