Skip to content

Commit

Permalink
Merge branch 'sb/maint-pull-rebase' into maint
Browse files Browse the repository at this point in the history
* sb/maint-pull-rebase:
  pull: support rebased upstream + fetch + pull --rebase
  t5520-pull: Test for rebased upstream + fetch + pull --rebase
  • Loading branch information
gitster committed Aug 21, 2009
2 parents 83e355a + d44e712 commit 07d6309
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
14 changes: 11 additions & 3 deletions git-pull.sh
Expand Up @@ -124,10 +124,18 @@ test true = "$rebase" && {
git diff-index --ignore-submodules --cached --quiet HEAD -- ||
die "refusing to pull with rebase: your working tree is not up-to-date"

oldremoteref= &&
. git-parse-remote &&
reflist="$(get_remote_merge_branch "$@" 2>/dev/null)" &&
oldremoteref="$(git rev-parse -q --verify \
"$reflist")"
remoteref="$(get_remote_merge_branch "$@" 2>/dev/null)" &&
oldremoteref="$(git rev-parse -q --verify "$remoteref")" &&
for reflog in $(git rev-list -g $remoteref 2>/dev/null)
do
if test "$reflog" = "$(git merge-base $reflog $curr_branch)"
then
oldremoteref="$reflog"
break
fi
done
}
orig_head=$(git rev-parse -q --verify HEAD)
git fetch $verbosity --update-head-ok "$@" || exit 1
Expand Down
13 changes: 13 additions & 0 deletions t/t5520-pull.sh
Expand Up @@ -117,6 +117,19 @@ test_expect_success '--rebase with rebased default upstream' '
'

test_expect_success 'rebased upstream + fetch + pull --rebase' '
git update-ref refs/remotes/me/copy copy-orig &&
git reset --hard to-rebase-orig &&
git checkout --track -b to-rebase3 me/copy &&
git reset --hard to-rebase-orig &&
git fetch &&
git pull --rebase &&
test "conflicting modification" = "$(cat file)" &&
test file = "$(cat file2)"
'

test_expect_success 'pull --rebase dies early with dirty working directory' '
git checkout to-rebase &&
Expand Down

0 comments on commit 07d6309

Please sign in to comment.