Revision 28e77a81647584bfbe112f19e12e9952ab0b2fab authored by Junio C Hamano on 11 December 2005, 06:05:01 UTC, committed by Junio C Hamano on 11 December 2005, 09:47:15 UTC
This does two things.

 - When one branch renamed and the other branch did not, the
   resulting half-merged file in the working tree used to swap
   branches around and showed as if renaming side was "ours".
   This was confusing and inconsistent (even though the conflict
   markers were marked with branch names, it was not a good
   enough excuse).  This changes the order of arguments to
   mergeFile in such a case to make sure we always see "our"
   change between <<< and ===, and "their" change between ===
   and >>>.

 - When both branches renamed to the same path, and when one
   branch renamed and the other branch did not, we attempt
   mergeFile.  When this automerge conflicted, we used to
   collapse the index.  Now we use update-index --index-info
   to inject higher stage entries to leave the index in unmerged
   state for these two cases.

What this still does _not_ do is to inject unmerged state into
the index when the structural changes conflict.  I have not
thought things through what to do in each case yet, but the
cases this commit cover are the most common ones, so this would
be a good start.

Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent 7564577
Raw File
.gitignore
git
git-add
git-am
git-apply
git-applymbox
git-applypatch
git-archimport
git-bisect
git-branch
git-cat-file
git-check-ref-format
git-checkout
git-checkout-index
git-cherry
git-cherry-pick
git-clone
git-clone-pack
git-commit
git-commit-tree
git-convert-objects
git-count-objects
git-cvsexportcommit
git-cvsimport
git-daemon
git-diff
git-diff-files
git-diff-index
git-diff-stages
git-diff-tree
git-fetch
git-fetch-pack
git-findtags
git-fmt-merge-msg
git-format-patch
git-fsck-objects
git-get-tar-commit-id
git-grep
git-hash-object
git-http-fetch
git-http-push
git-index-pack
git-init-db
git-local-fetch
git-log
git-lost-found
git-ls-files
git-ls-remote
git-ls-tree
git-mailinfo
git-mailsplit
git-merge
git-merge-base
git-merge-index
git-merge-octopus
git-merge-one-file
git-merge-ours
git-merge-recursive
git-merge-resolve
git-merge-stupid
git-mktag
git-name-rev
git-mv
git-octopus
git-pack-redundant
git-pack-objects
git-parse-remote
git-patch-id
git-peek-remote
git-prune
git-prune-packed
git-pull
git-push
git-read-tree
git-rebase
git-receive-pack
git-relink
git-repack
git-repo-config
git-request-pull
git-reset
git-resolve
git-rev-list
git-rev-parse
git-revert
git-send-email
git-send-pack
git-sh-setup
git-shell
git-shortlog
git-show-branch
git-show-index
git-ssh-fetch
git-ssh-pull
git-ssh-push
git-ssh-upload
git-status
git-stripspace
git-svnimport
git-symbolic-ref
git-tag
git-tar-tree
git-unpack-file
git-unpack-objects
git-update-index
git-update-ref
git-update-server-info
git-upload-pack
git-var
git-verify-pack
git-verify-tag
git-whatchanged
git-write-tree
git-core-*/?*
test-date
test-delta
*.tar.gz
*.dsc
*.deb
git-core.spec
*.exe
libgit.a
*.o
back to top