git: don't stash/shelve before update if possible.
authorKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Mon, 28 Feb 2011 14:11:21 +0000 (17:11 +0300)
committerKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Thu, 10 Mar 2011 16:09:03 +0000 (19:09 +0300)
commit271a7e353cac0fe0d5cb1e422e862d278b79c9b1
treea543d5b13b28c00d9a0988dfff593c79ce8cb486
parent68dacb79ac02114c25f3c3581a059d784e6cdbbf
git: don't stash/shelve before update if possible.

Update via rebase always needs clean working tree.
Update via merge can be performed on a dirty working tree, if local changes don't intersect with remote changes.

GitUpdateProcess: before update ask each updater if save is needed.
GitMergeUpdater performs 'git fetch' and analyzes which files would change.
GitMergeUpdater.update is changed to make 'git merge' instead of 'git pull'.
plugins/git4idea/src/git4idea/branch/GitBranchPair.java [new file with mode: 0644]
plugins/git4idea/src/git4idea/update/GitChangesSaver.java
plugins/git4idea/src/git4idea/update/GitMergeUpdater.java
plugins/git4idea/src/git4idea/update/GitRebaseUpdater.java
plugins/git4idea/src/git4idea/update/GitShelveChangesSaver.java
plugins/git4idea/src/git4idea/update/GitStashChangesSaver.java
plugins/git4idea/src/git4idea/update/GitUpdateProcess.java
plugins/git4idea/src/git4idea/update/GitUpdater.java