On Sat, Nov 13, 2010 at 1:09 PM, Martin von Zweigbergk <martin.von.zweigbergk@xxxxxxxxx> wrote: > diff --git a/git-parse-remote.sh b/git-parse-remote.sh > index 5f47b18..2e1661d 100644 > --- a/git-parse-remote.sh > +++ b/git-parse-remote.sh > @@ -63,11 +63,8 @@ get_default_remote () { > get_remote_merge_branch () { > case "$#" in > 0|1) > - origin="$1" > - default=$(get_default_remote) > - test -z "$origin" && origin=$default > curr_branch=$(git symbolic-ref -q HEAD) > - [ "$origin" = "$default" ] && > + test -z "$1" || test "$1" = $(get_default_remote) && > echo $(git for-each-ref --format='%(upstream)' $curr_branch) > ;; > *) They are not equivalent, the last line (echo $(git for-each-ref...)) is always executed, not only when ask for the default remote. When $origin != $default the last line does not return the correct answer. It should return nothing, it is not well defined. Or maybe it should return the branch pointed by $origin/HEAD (I cannot test right now what 'git pull $remote-not-the-default' merges). And it has nothing to do with letting 'pull --rebase . for" work. > @@ -89,7 +86,13 @@ get_remote_merge_branch () { > refs/heads/*) remote=${remote#refs/heads/} ;; > refs/* | tags/* | remotes/* ) remote= > esac > - > - [ -n "$remote" ] && echo "refs/remotes/$repo/$remote" > + [ -n "$remote" ] && case "$repo" in > + .) > + echo "refs/heads/$remote" > + ;; > + *) > + echo "refs/remotes/$repo/$remote" > + ;; > + esac > esac > } > diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh > index 0b489f5..0470a81 100755 > --- a/t/t5520-pull.sh > +++ b/t/t5520-pull.sh > @@ -222,4 +222,11 @@ test_expect_success 'git pull --rebase does not > reapply old patches' ' > ) > ' > > +test_expect_success 'git pull --rebase against local branch' ' > + git checkout -b copy2 to-rebase-orig && > + git pull --rebase . to-rebase && > + test "conflicting modification" = "$(cat file)" && > + test file = "$(cat file2)" > +' > + > test_done For the rest I think they are OK, and make sense. HTH, Santi -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html