When merging 2 branches with the same modifications on the both sides,
depending the merge side, one branch disappear from the file history.
To be more clear, there is a script in attachment to reproduce, but
here is the result :
$ git log --graph --oneline --all --decorate --name-status
* 63c807f (HEAD, master) Merge branch 'branch' into 'master'
|\
| * 5dc8785 (branch) Change line 15 on branch
| | M file
| * d9cd3ce Change line 25 on branch
| | M file
* | 7220d52 Change line 15 on master
|/
| M file
* 7566672 Initial commit
A file
$ git log --graph --oneline --all --decorate --name-status -- file
* 5dc8785 (branch) Change line 15 on branch
| M file
* d9cd3ce Change line 25 on branch
| M file
* 7566672 Initial commit
A file
=> The commit 7220d52 modified the file but is not shown in file
history anymore.
The expected result would be:
* 5dc8785 (branch) Change line 15 on branch
| M file
* d9cd3ce Change line 25 on branch
| M file
| * 7220d52 Change line 15 on master
|/
| M file
* 7566672 Initial commit
A file
The order between the 2 commits on the branch is not important.
If you do a 'cherry-pick 7220d52' or a 'merge --squash master' instead
of applying the same modification for commit 5dc8785, you get the same
result (cherry-picking was my initial use-case).
If you do not create the commit d9cd3ce, then the file history show all commits.
If you merge 'master' into 'branch', then the file history show all commits.
Am I missing something or is it really a bug?
Thanks.
--
Alex