Subject: Re: [RFC] git branch --status ?

From: Michael J Gruber <[email-masked]>
Date: Mon, 03 May 2010 21:54:42 +0200

Cheng Renquan venit, vidit, dixit 03.05.2010 20:31:
> Hi, all,
>   I'm considering to do a feature patch that is useful for this scenario:
> 
> $ git remote -v update
> Updating geko-ceph
> From git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
>  = [up to date]      for-linus  -> geko-ceph/for-linus
>  = [up to date]      for-next   -> geko-ceph/for-next
>  = [up to date]      master     -> geko-ceph/master
>  = [up to date]      rbd        -> geko-ceph/rbd
>  = [up to date]      unstable   -> geko-ceph/unstable
> Updating newd-ceph
> From git://ceph.newdream.net/ceph-client
>  = [up to date]      addr_cleanup -> newd-ceph/addr_cleanup
>  = [up to date]      auth       -> newd-ceph/auth
>  = [up to date]      bookkeeper -> newd-ceph/bookkeeper
>  = [up to date]      cephdev    -> newd-ceph/cephdev
>  = [up to date]      for-next   -> newd-ceph/for-next
>  = [up to date]      master     -> newd-ceph/master
>  = [up to date]      msgr       -> newd-ceph/msgr
>  = [up to date]      osd-timeout -> newd-ceph/osd-timeout
>  = [up to date]      pgcache    -> newd-ceph/pgcache
>  = [up to date]      pgcache2   -> newd-ceph/pgcache2
>  = [up to date]      pgcache3   -> newd-ceph/pgcache3
>  = [up to date]      rbd        -> newd-ceph/rbd
>  = [up to date]      rbd2       -> newd-ceph/rbd2
>  = [up to date]      reconnect  -> newd-ceph/reconnect
>  = [up to date]      unstable   -> newd-ceph/unstable
>  = [up to date]      upstream   -> newd-ceph/upstream
> 
> after this kind of remote update, usually we want to know:
> 1) which remote branch is the latest? (then know which branch is most valuable)
> 2) the latest commit information of every branch (remote & local) ?
> 
> I'd like to use "git branch -a --status" to achieve this feature,
> something like:
> 
> $ git branch -a --status
> 
> git branch -a
>   master [%h %an %ad %s]
> * new33 [%h %an %ad %s]
>   remotes/geko-ceph/for-linus [%h %an %ad %s]
>   remotes/geko-ceph/for-next ...
>   remotes/geko-ceph/master ...
>   remotes/geko-ceph/rbd
>   remotes/geko-ceph/unstable
>   remotes/newd-ceph/addr_cleanup
>   remotes/newd-ceph/auth
> 
> So now for everyone here,
> 1) how do you think it's useful?
> 2) if some current command with some switches has done the goal?
>    (then I don't need to implement it,)
> 2) if not; which command switch (other than "branch --status") do you prefer?
> 3) implementation suggestions?
> 
> Thanks & Cheers,
> 
> --
> Cheng Renquan (程任全), Singapore

You may mean something like

git log --no-walk --format="%d [%h %an %ad %s]" --branches

although Jeff will tell you to use

git for-each-ref --format="%(refname:short) [%(objectname) %(authorname)
%(authordate) %(subject)]" refs/heads

and will probably know how to abbreviate the objectname here ;)

Cheers,
Michael