Re: Bug in log for path in case of identical commit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2014-11-04 17:21 GMT+01:00 Phil Hord <phil.hord@xxxxxxxxx>:
> On Fri, Oct 31, 2014 at 4:40 AM, Alexandre Garnier <zigarn+git@xxxxxxxxx> wrote:
>> 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.
>
> This last line was confusing to me.  But I think you've misinterpreted
> the results a bit.  There is no difference between "merge master into
> branch" and "merge branch into master" in this case.  The real reason
> the "extra" commit is shown in the former case is that you used
> '--all' (include all refs as commandline arguments) and the commit
> which was being omitted was directly referenced by a ref, 'master'.
>
> When I remove the "--all" from your test script, I get consistent logs
> for the two merges.
>
> Maybe this has misled your other tests as well.  Read the "History
> Simplification" section of "git help log".

Thanks for pointing me out the 'history simplification' [1]. Didn't
know about this and missed it in the large help of 'git log'.
I will now use the '--full-history' option more often as it has more
sense to me (but it's not available in EGit: bug #341028) [2])

[1] http://git-scm.com/docs/git-log#_history_simplification
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=341028

-- 
Alex
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]