From: Junio C Hamano Date: Sun, 6 Nov 2005 08:52:57 +0000 (-0800) Subject: Set up remotes/origin to track all remote branches. X-Git-Tag: v0.99.9e^2~3 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=95d117b6051c01726b67d3151f83e47dd41c0743;p=git.git Set up remotes/origin to track all remote branches. This implements the idea Daniel Barkalow came up with, to match the remotes/origin created by clone by default to the workflow I use myself in my guinea pig repository, to have me eat my own dog food. We probably would want to use either .git/refs/local/heads/* (idea by Linus) or .git/refs/heads/origin/* instead to reduce the local ref namespace pollution. Signed-off-by: Junio C Hamano --- diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index cbd83f35d..fefd2985f 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -25,7 +25,8 @@ This is to help the typical workflow of working off of the remote `master` branch. Every time `git pull` without argument is run, the progress on the remote `master` branch is tracked by copying it into the local `origin` branch, and merged into the -branch you are currently working on. +branch you are currently working on. Remote branches other than +`master` are also added there to be tracked. OPTIONS diff --git a/git-clone.sh b/git-clone.sh index 1adf60417..4fdd65251 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -202,8 +202,16 @@ then mkdir -p .git/remotes && echo >.git/remotes/origin \ "URL: $repo -Pull: $head_points_at:origin" - cp ".git/refs/heads/$head_points_at" .git/refs/heads/origin +Pull: $head_points_at:origin" && + cp ".git/refs/heads/$head_points_at" .git/refs/heads/origin && + find .git/refs/heads -type f -print | + while read ref + do + head=`expr "$ref" : '.git/refs/heads/\(.*\)'` && + test "$head_points_at" = "$head" || + test "origin" = "$head" || + echo "Pull: ${head}:${head}" + done >>.git/remotes/origin esac case "$no_checkout" in