On 10/22/06, Junio C Hamano <junkio@cox.net> wrote:
I actually did, but then abandoned it since it would change the output
for remote branches (two spaces indent). I didn't want to cause any
regressions :-)
But if that's ok, my abandoned patch contained this:
@@ -48,14 +48,35 @@ If you are sure you want to delete it, r
exit 0
}
-ls_remote_branches () {
- git-rev-parse --symbolic --all |
- sed -ne 's|^refs/\(remotes/\)|\1|p' |
- sort
-}
-+width=20
+sedmatch="^refs/heads/"
+sedsubst=
+verbose=
force=
create_log=
+
+ls_refs () {
+ git-rev-parse --symbolic --all |
+ sed -ne "s|$sedmatch|$sedsubst|p" |
+ sort |
+ while read ref
+ do
+ if test "$headref" = "$ref"
+ then
+ pfx='*'
+ else
+ pfx=' '
+ fi
+ if test "$verbose" = "yes"
+ then
+ log=$(git-log --max-count=1 --pretty=oneline $ref)
+ printf "%s %-*s %s\n" "$pfx" "$width" "$ref" "$log"
+ else
+ echo "$pfx $ref"
+ fi
+ done
+}
+
while case "$#,$1" in 0,*) break ;; *,-*) ;; *) break ;; esac
do
case "$1" in
@@ -64,8 +85,8 @@ do
exit
;;
-r)
- ls_remote_branches
- exit
+ sedmatch="^refs/\(remotes/\)"
+ sedsubst="\1"
;;
-f)
force="$1"
@@ -73,6 +94,13 @@ do
-l)
create_log="yes"
;;
+ -v)
+ verbose="yes"
+ ;;
+ -w)
+ shift
+ width=$1
+ ;;
--)
shift
break
@@ -86,18 +114,7 @@ done
case "$#" in
0)
- git-rev-parse --symbolic --branches |
- sort |
- while read ref
- do
- if test "$headref" = "$ref"
- then
- pfx='*'
- else
- pfx=' '
- fi
- echo "$pfx $ref"
- done
+ ls_refs
exit 0 ;;
1)
head=HEAD ;;
And then I added -a and -t (for "all" and "tags", obviously), and felt
I went over the top :-)
Btw: in the meantime, Kristian H