'hg log FILE1 FILE2' order depends on the order of the files?
Yuya Nishihara
yuya at tcha.org
Fri Feb 12 16:53:59 UTC 2016
On Thu, 11 Feb 2016 20:47:32 +0000, Pierre-Yves David wrote:
> On 02/11/2016 06:20 PM, Stanislau Hlebik wrote:
> > Maybe I'm doing smth wrong, but when I tried to run
> > sort(::0902ae52b1289c6e88bbbb55eb59464a1ebbce91, -rev) result still
> > depends on the file order.
>
> That's probably because the file arguement are added tot he revset after
> the fact (and probably as first element for some reason) try adding your
> file as revset element directly.
This looks like a regression around smartset + logrevset.
"hg log -r R A B" constructs the following expression,
revs = R
expr = filelog(A) or filelog(B)
and evaluates expr against revs.
matcher = revset.match(ui, expr)
matcher(repo, revs)
This is equivalent to "R and (filelog(A) or filelog(B))", which builds the
following set:
<addset
<filteredset <R>>,
<filteredset <R>>>
Therefore, the ordering of <R> isn't preserved.
Perhaps, <addset> should be wrapped by <filteredset self=R> if R is dominant,
but the problem won't that simple.
More information about the Mercurial-devel
mailing list