File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -124,10 +124,18 @@ test true = "$rebase" && {
124124 git diff-index --ignore-submodules --cached --quiet HEAD -- ||
125125 die " refusing to pull with rebase: your working tree is not up-to-date"
126126
127+ oldremoteref= &&
127128 . git-parse-remote &&
128- reflist=" $( get_remote_merge_branch " $@ " 2> /dev/null) " &&
129- oldremoteref=" $( git rev-parse -q --verify \
130- " $reflist " ) "
129+ remoteref=" $( get_remote_merge_branch " $@ " 2> /dev/null) " &&
130+ oldremoteref=" $( git rev-parse -q --verify " $remoteref " ) " &&
131+ for reflog in $( git rev-list -g $remoteref 2> /dev/null)
132+ do
133+ if test " $reflog " = " $( git merge-base $reflog $curr_branch ) "
134+ then
135+ oldremoteref=" $reflog "
136+ break
137+ fi
138+ done
131139}
132140orig_head=$( git rev-parse -q --verify HEAD)
133141git fetch $verbosity --update-head-ok " $@ " || exit 1
Original file line number Diff line number Diff line change @@ -117,6 +117,19 @@ test_expect_success '--rebase with rebased default upstream' '
117117
118118'
119119
120+ test_expect_success ' rebased upstream + fetch + pull --rebase' '
121+
122+ git update-ref refs/remotes/me/copy copy-orig &&
123+ git reset --hard to-rebase-orig &&
124+ git checkout --track -b to-rebase3 me/copy &&
125+ git reset --hard to-rebase-orig &&
126+ git fetch &&
127+ git pull --rebase &&
128+ test "conflicting modification" = "$(cat file)" &&
129+ test file = "$(cat file2)"
130+
131+ '
132+
120133test_expect_success ' pull --rebase dies early with dirty working directory' '
121134
122135 git checkout to-rebase &&
You can’t perform that action at this time.
0 commit comments