[MERGE][BUG] 51980: bzr log <file>returns inappropriate revisions
John Arbash Meinel
john at arbash-meinel.com
Mon Apr 2 19:19:23 BST 2007
Aaron Bentley wrote:
> John Arbash Meinel wrote:
>> Aaron Bentley wrote:
>>> Personally, I'd like to see the merge commits in the long form, but
>>> others may have different ideas.
>> So the difficulty with this is for things like:
>
>> A
>> | \
>> B C
>> |/
>> D
>
>> If 'C' modifies 'foo.py', but 'B' doesn't, then when we commit 'D', we
>> have ie.revision = 'C'. Because 'D' doesn't change 'foo.py' relative to
>> its parents.
>
>> So 'D' will not show up in either fileids_altered_by_revision_ids, nor
>> in foo.py.kndx
>
> I agree that it will not show up in foo.py.kndx. But
> fileids_altered_by_revision_ids looks at the delta between D and B, and
> according to that delta, foo.py was altered.
>
> It is necessary for it to work like that, because if C were a ghost,
> fetch would fail to retrieve the necessary file revisions.
It will show up, but it will return C, not D. Because it looks at the
revision="C" property, not at the current revision.
>
>> However, all of this has a different problem, which is its asymmetry.
>
>> Specifically, Aaron has requested that
>
>> A
>> |\
>> B C
>> |/
>> D
>
>> Show C, D when C modifies 'foo'. (C did the modification, and D merged it).
>
>> However, what if 'B' modified foo. Arguably then we should show B, D,
>> since D was a merge, and relative to C it modified foo.
>
> What makes B a merge? Are you considering all parents merges?
>
> Aaron
Well, B and C were merged to create D. We have been distinguishing them
as mainline parent, and merge parent. I was just commenting on the
asymmetry. (It certainly can be something we are okay with, but it
should be noted).
John
=:->
More information about the bazaar
mailing list