diff options
| author | Junio C Hamano <gitster@pobox.com> | 2013-07-15 10:35:43 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2013-07-15 10:35:43 -0700 |
| commit | d2db8f78c469f4b346a048b5deed7c6fdd4b8d05 (patch) | |
| tree | 62ec3225da5092e637353ada32cc43744d66dd97 /git-pull.sh | |
| parent | Merge branch 'fg/submodule-non-ascii-path' into maint (diff) | |
| parent | pull: merge into unborn by fast-forwarding from empty tree (diff) | |
| download | git-d2db8f78c469f4b346a048b5deed7c6fdd4b8d05.tar.gz git-d2db8f78c469f4b346a048b5deed7c6fdd4b8d05.zip | |
Merge branch 'jk/pull-into-dirty-unborn' into maint
"git pull" into nothing trashed "local changes" that were in the
index.
* jk/pull-into-dirty-unborn:
pull: merge into unborn by fast-forwarding from empty tree
pull: update unborn branch tip after index
Diffstat (limited to 'git-pull.sh')
| -rwxr-xr-x | git-pull.sh | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/git-pull.sh b/git-pull.sh index 638aabb7b3..6828e2c715 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -266,10 +266,17 @@ case "$merge_head" in ;; esac +# Pulling into unborn branch: a shorthand for branching off +# FETCH_HEAD, for lazy typers. if test -z "$orig_head" then - git update-ref -m "initial pull" HEAD $merge_head "$curr_head" && - git read-tree -m -u HEAD || exit 1 + # Two-way merge: we claim the index is based on an empty tree, + # and try to fast-forward to HEAD. This ensures we will not + # lose index/worktree changes that the user already made on + # the unborn branch. + empty_tree=4b825dc642cb6eb9a060e54bf8d69288fbee4904 + git read-tree -m -u $empty_tree $merge_head && + git update-ref -m "initial pull" HEAD $merge_head "$curr_head" exit fi |
