threads / discuss / 39924

git branch -v output ambiguous for parser

Subject: git branch -v output ambiguous for parser

## tl;dr

2 messages between Jul 23, 2015 and Jul 23, 2015.

replies: 1people: 2as markdown or json

Thibault Kruse· Jul 23, 2015, 13:29 UTC · lore
Hi,
trying to write a git wrapper, I wanted to parse the output of git branch -v

However, I realized that the output prints the last commit message at the end of the line, without any disambigution char, or hyphens. This makes it possible to have these outputs:

  foo                 6d29736 [foo/bar] test123
  master              9726de6 [ahead 2, behind 2] line 1 line 2 line 3

where foo is a branch that does not track another branch, and the last commit message on branch foo is '[foo/bar] test123'. The opening brackets '[' are even aligned in the output, making that distinction also difficult for the human eye.

So as a small improvement I would suggest some separating char or hyphens around the commit message, e.g.:

  foo                 6d29736 '[foo/bar] test123'
  foo                 6d29736 | [foo/bar] test123
regards,
  Thibault Kruse
Dennis Kaarsemaker· Jul 23, 2015, 13:44 UTC · re: Thibault Kruse · lore

Re: git branch -v output ambiguous for parser

On do, 2015-07-23 at 15:29 +0200, Thibault Kruse wrote:
> Hi,
> 
> trying to write a git wrapper, I wanted to parse the output of git branch -v

The output of git branch is not meant to be machine-parsed. Try using git for-each-ref :)

-- 
Dennis Kaarsemaker
http://www.kaarsemaker.net

← back to recent threads