mirror of
https://github.com/git/git.git
synced 2024-11-02 15:28:21 +01:00
Merge branch 'sb/maint-pull-rebase' into maint
* sb/maint-pull-rebase: pull: support rebased upstream + fetch + pull --rebase t5520-pull: Test for rebased upstream + fetch + pull --rebase
This commit is contained in:
commit
07d6309e63
2 changed files with 24 additions and 3 deletions
14
git-pull.sh
14
git-pull.sh
|
@ -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
|
||||
|
|
|
@ -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 &&
|
||||
|
|
Loading…
Reference in a new issue