local repo url
local remote=$(git config remote.origin.url)
+
+ if [[ -z ${remote} ]] ; then
+ # Maybe the repo doesn't use "origin". Try harder.
+ local branch=$(git rev-parse --abbrev-ref HEAD)
+ remote=$(git config "branch.${branch}.remote")
+ if [[ -n ${remote} ]] ; then
+ remote=$(git config "remote.${remote}.url")
+ fi
+ fi
+
case ${remote} in
*://uclibc.org/*|*://git.uclibc.org/*|\
*://busybox.net/*|*://git.busybox.net/*|\
repo=$(echo "${remote}" | sed -r -e 's,^git://git.(sv|savannah).gnu.org/,,' -e 's:[.]git$::')
url="http://git.savannah.gnu.org/cgit/${repo}.git/commit/?h="
;;
+ git://git.sv.nongnu.org/*|git://git.savannah.nongnu.org/*)
+ repo=$(echo "${remote}" | sed -r -e 's,^git://git.(sv|savannah).nongnu.org/,,' -e 's:[.]git$::')
+ url="http://git.savannah.nongnu.org/cgit/${repo}.git/commit/?h="
+ ;;
git://git.code.sf.net/p/*|ssh://*@git.code.sf.net/p/*)
repo=$(echo "${remote}" | sed -r -e 's,(git://|ssh://([^@]*@)?)git.code.sf.net/p/([^/]*)/.*,\3,')
url="https://sourceforge.net/p/${repo}/code/ci/"
;;
*://git.qemu.org/*)
repo=$(echo "${remote}" | sed -e 's,^[^/]*//[^/]*/,,' -e 's,[.]git$,,')
- url="http://git.qemu.org/?p=${repo}.git;a=commit;h="
+ url="https://git.qemu.org/?p=${repo}.git;a=commit;h="
+ ;;
+ *://git.kernel.org/*)
+ repo=$(echo "${remote}" | sed -e 's,^[^/]*//[^/]*/,,' -e 's,[.]git$,,')
+ url="https://git.kernel.org/${repo}.git/commit/?id="
;;
*)
echo "Unknown remote: ${remote}"