aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanti Béjar <sbejar@gmail.com>2006-09-23 12:05:43 +0200
committerJunio C Hamano <junkio@cox.net>2006-09-24 00:13:49 -0700
commit648ad18f5077295c4317f0784b29e09d2c0bac93 (patch)
tree9b6315db16fd1be76e63e19af193a8939f2b7434
parented1795fcc5f2aa3f105630429bcbed49c50053fa (diff)
downloadgit-648ad18f5077295c4317f0784b29e09d2c0bac93.tar.gz
git-648ad18f5077295c4317f0784b29e09d2c0bac93.tar.xz
Fetch: default remote repository from branch properties
If in branch "foo" and this in config: [branch "foo"] remote=bar "git fetch" = "git fetch bar" "git pull" = "git pull bar" Signed-off-by: Santi Béjar <sbejar@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--Documentation/config.txt3
-rwxr-xr-xgit-fetch.sh9
-rwxr-xr-xgit-parse-remote.sh6
3 files changed, 13 insertions, 5 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index bb2fbc324..04c5094fd 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -119,6 +119,9 @@ apply.whitespace::
Tells `git-apply` how to handle whitespaces, in the same way
as the '--whitespace' option. See gitlink:git-apply[1].
+branch.<name>.remote::
+ When in branch <name>, it tells `git fetch` which remote to fetch.
+
pager.color::
A boolean to enable/disable colored output when the pager is in
use (default is true).
diff --git a/git-fetch.sh b/git-fetch.sh
index 09a5d6cea..50ad101e8 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -68,11 +68,10 @@ done
case "$#" in
0)
- test -f "$GIT_DIR/branches/origin" ||
- test -f "$GIT_DIR/remotes/origin" ||
- git-repo-config --get remote.origin.url >/dev/null ||
- die "Where do you want to fetch from today?"
- set origin ;;
+ origin=$(get_default_remote)
+ test -n "$(get_remote_url ${origin})" ||
+ die "Where do you want to fetch from today?"
+ set x $origin ; shift ;;
esac
remote_nick="$1"
diff --git a/git-parse-remote.sh b/git-parse-remote.sh
index 187f0883c..69998169b 100755
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh
@@ -68,6 +68,12 @@ get_remote_url () {
esac
}
+get_default_remote () {
+ curr_branch=$(git-symbolic-ref HEAD | sed -e 's|^refs/heads/||')
+ origin=$(git-repo-config --get "branch.$curr_branch.remote")
+ echo ${origin:-origin}
+}
+
get_remote_default_refs_for_push () {
data_source=$(get_data_source "$1")
case "$data_source" in