From fe249b4219f66ae3aacfac50ad19b38c370ad115 Mon Sep 17 00:00:00 2001 From: Martin von Zweigbergk Date: Sat, 13 Nov 2010 23:58:22 +0100 Subject: [PATCH] Use reflog in 'pull --rebase . foo' MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Since c85c792 (pull --rebase: be cleverer with rebased upstream branches, 2008-01-26), "git pull --rebase" has used the reflog to try to rebase from the old upstream onto the new upstream. Make this work if the local repository is explicitly passed on the command line as in 'git pull --rebase . foo'. Signed-off-by: Martin von Zweigbergk Acked-by: Santi BĂ©jar Signed-off-by: Junio C Hamano --- git-parse-remote.sh | 10 ++++++++-- t/t5520-pull.sh | 7 +++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/git-parse-remote.sh b/git-parse-remote.sh index 5f47b18141..375a0ba59e 100644 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -89,7 +89,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 0b489f5b12..0470a81be0 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 -- 2.11.4.GIT