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?