]> git.donarmstrong.com Git - zsh.git/commitdiff
Merge branch 'master' of ssh://git.madduck.net/madduck/pub/etc/zsh
authormartin f. krafft <madduck@madduck.net>
Fri, 30 Jul 2010 20:31:13 +0000 (22:31 +0200)
committermartin f. krafft <madduck@madduck.net>
Fri, 30 Jul 2010 20:31:13 +0000 (22:31 +0200)
Conflicts:
.zsh/func/giturl

1  2 
.zsh/func/giturl

index 61532dc94b5eab3814163d16d1f3815f2d3af499,c4dd9de735d6830cf77a3d454cde3c74db615187..c85674a6d1fc970d894cc3213ca1562101f65c6f
  # Source repository: git://git.madduck.net/etc/zsh.git
  #
  
 -local GITWEB_BASE
 -GITWEB_BASE=http://git.madduck.net/v
 +local remote; remote=$(git config --get remote.origin.url)
  
 -local REMOTE
 -REMOTE=$(git config --get remote.origin.url)
 -
 -local part
 -case "$REMOTE" in
 +local part gitweb_base oldstyle
 +oldstyle=0
 +case "$remote" in
-   madduck:pub/*)
+   madduck:pub/*|ssh://git.madduck.net/madduck/pub/*)
 -    part="${REMOTE#madduck:pub/}"
 +    gitweb_base=http://git.madduck.net/v
 +    part="${remote#madduck:pub/}"
+     part="${part#ssh://git.madduck.net/madduck/pub/}"
+     part="${part%.git}.git"
      ;;
 +  debian:*|*://git.debian.org/git/*|*@git.debian.org/git/*)
 +    gitweb_base=http://git.debian.org
 +    part="${remote#debian:}"
 +    part="${part#*://git.debian.org/git/}"
 +    part="${part#*@git.debian.org/git/}"
++    part="${part%.git}.git"
 +    oldstyle=1
 +    ;;
    *)
      echo >&2 "E: I do not know how to translate $REMOTE into a gitweb URL."
      return 1
      ;;
  esac
  
 -echo $GITWEB_BASE/$part
 -HASH=$(git rev-parse HEAD)
 -echo $GITWEB_BASE/$part/commitdiff/$HASH
 +local hash
 +hash=$(git rev-parse HEAD)
  
 -echo $GITWEB_BASE/$part/tree/HEAD
 -for i in $@; do
 -  [ -f "$i" ] && echo "$GITWEB_BASE/$part/blob/HEAD:/$i"
 -  [ -d "$i" ] && echo "$GITWEB_BASE/$part/tree/HEAD:/$i"
 -done
 +case "$oldstyle" in
-   0) echo "$gitweb_base/$part/commitdiff/$hash";;
-   *) echo "$gitweb_base/?p=$part;a=commitdiff;h=$hash";;
++  0)
++    echo "$gitweb_base/$part/commitdiff/$hash"
++    echo "$gitweb_base/$part/tree/HEAD"
++    for i in $@; do
++      [ -f "$i" ] && echo "$gitweb_base/$part/blob/HEAD:/$i"
++      [ -d "$i" ] && echo "$gitweb_base/$part/tree/HEAD:/$i"
++    done
++    ;;
++  *)
++    echo "$gitweb_base/?p=$part;a=commitdiff;h=$hash"
++    echo "$gitweb_base/?p=$part;a=tree;h=HEAD"
++    for i in $@; do
++      [ -f "$i" ] && echo "$gitweb_base/?p=$part;a=blob;h=HEAD;f=$i"
++      [ -d "$i" ] && echo "$gitweb_base/?p=$part;a=tree;h=HEAD:f=$i"
++    done
++    ;;
 +esac