Sorry, the max characters per line restriction of the e-mail broke the
workflow.
Here it is again.
git pull rebase = true or preserve
|
|
|
|
|
check if local branch has no new commits
|
no| yes
-+-
| |
| |
| |
rebase validation ff merge validation for
for local changes conflicting local changes
| |
no changes| changes no conflicts |has conflicts
+-+--
||| |
||| |
||| |
do rebase use autostash? do ff merge use autostash?
||| |
|no | yes |no | yes
|+- |-+-
||| || |
||| || |
| conflict error stash changes| conflict error stash changes
||| || |
||| || |
||do rebase || ff merge
||| || |
||| || |
||pop stash || pop stash
||| || |
||| || |
success abort success success abort success
Regarda,
Mattias
Von:Mattias Neuling/DAKOSY/DE
An: git@vger.kernel.org
Datum: 10.07.2017 18:09
Betreff:Performance improvement for git pull rebase and autostash
Hi,
I have some suggestions to improve performance of 'git pull --rebase'.
1. If I have no new local commits "git pull --rebase" will do a fast
forward merge. But if I have changes to local files I have to stash them
also if they are not affected by the new commits from origin. I think in
that case git should not reject changes to every local file and has to use
the fast forward merge validation instead.
2. If I have no changes to local files and I use 'git pull --rebase
--autostash' no stashing should take place.
The improved workflow would look like as follows.
git pull rebase = true or preserve
|
|
|
|
|
check if local branch has no new commits
|
no| yes
-+-
| |
| |
| |
rebase validation ff merge validation for
for local changes conflicting local changes
| |
no changes| changes no conflicts |has conflicts
+-+--
||| |
||| |
||| |
do rebase use autostash? do ff merge use autostash?
||| |
|no | yes |no | yes
|+- |-+-
||| || |
||| || |
| conflict error stash changes| conflict error stash
changes
||| || |
||| || |
||do rebase ||do