if test -x /usr/bin/git >/dev/null 2>&1; then
# chdir to a remote's directory (if the remote is on the local FS)
cdremote() {
- if [ -z "$1" -o -n "$2" ]; then
- echo "Usage: cdremote remote_name" >&2
+ if [ -z "$1" ]; then
+ branch="`git rev-parse --abbrev-ref HEAD`"
+ remote="`git config --get branch.$branch.remote`"
+ elif [ -n "$2" ]; then
+ echo "Usage: cdremote [remote_name]" >&2
return 1
+ else
+ remote="$1"
fi
- cd "`git config --get remote.$1.url`"
+
+ if [ -z "$remote" ]; then
+ echo "Cannot find remote for branch $branch" >&2
+ echo "Usage: cdremote [remote_name]" >&2
+ return 1
+ fi
+
+ cd "`git config --get remote.$remote.url`"
}
if test -n "$BASH_VERSION"; then