diff options
author | Andy Parkins <andyparkins@gmail.com> | 2006-12-06 12:07:23 +0000 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-12-06 11:24:04 -0800 |
commit | 955289bf92f0513377763c9aacfe426d5151b05a (patch) | |
tree | ef1b389c0b108464b7cd1d098fa3de0575a3ecc5 /git-clone.sh | |
parent | de51faf3888505fa3d661d4c35f32ecaf9fa1087 (diff) | |
download | git-955289bf92f0513377763c9aacfe426d5151b05a.tar.gz git-955289bf92f0513377763c9aacfe426d5151b05a.tar.xz |
Explicitly add the default "git pull" behaviour to .git/config on clone
Without any specification in the .git/config file, git-pull will execute
"git-pull origin"; which in turn defaults to pull from the first "pull"
definition for the remote, "origin".
This is a difficult set of defaults to track for a new user, and it's
difficult to see what tells git to do this (especially when it is
actually hard-coded behaviour). To ameliorate this slightly, this patch
explicitly specifies the default behaviour during a clone using the
"branch" section of the config.
For example, a clone of a typical repository would create a .git/config
containing:
[remote "origin"]
url = proto://host/repo.git
fetch = refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
The [branch "master"] section is such that there is no change to the
functionality of git-pull, but that functionality is now explicitly
documented.
Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Diffstat (limited to 'git-clone.sh')
-rwxr-xr-x | git-clone.sh | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/git-clone.sh b/git-clone.sh index 0ace989fd..1f5d07a05 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -400,7 +400,9 @@ then rm -f "refs/remotes/$origin/HEAD" git-symbolic-ref "refs/remotes/$origin/HEAD" \ "refs/remotes/$origin/$head_points_at" - esac + esac && + git-repo-config branch."$head_points_at".remote "$origin" && + git-repo-config branch."$head_points_at".merge "refs/heads/$head_points_at" esac case "$no_checkout" in |