contrib/revsetbenchmarks.txt
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Fri, 15 Aug 2014 20:28:51 +0900
changeset 22196 23fe278bde43
parent 21939 f486001f9d6f
child 22312 8b980fbbd6dc
permissions -rw-r--r--
largefiles: keep largefiles from colliding with normal one during linear merge Before this patch, linear merging of modified or newly added largefile causes unexpected result, if (1) largefile collides with same name normal one in the target revision and (2) "local" largefile is chosen, even though branch merging between such revisions doesn't. Expected result of such linear merging is: (1) (not yet recorded) largefile is kept in the working directory (2) largefile is marked as (re-)"added" (3) colliding normal file is marked as "removed" But actual result is: (1) largefile in the working directory is unlinked (2) largefile is marked as "normal" (so treated as "missing") (3) the dirstate entry for colliding normal file is just dropped (1) is very serious, because there is no way to restore temporarily modified largefiles. (3) prevents the next commit from adding the manifest with correct "removal of (normal) file" information for newly created changeset. The root cause of this problem is putting "lfile" into "actions['r']" in linear-merging case. At liner merging, "actions['r']" causes: - unlinking "target file" in the working directory, but "lfile" as "target file" is also largefile itself in this case - dropping the dirstate entry for target file "actions['f']" (= "forget") does only the latter, and this is reason why this patch doesn't choose putting "lfile" into it instead of "actions['r']". This patch newly introduces action "lfmr" (LargeFiles: Mark as Removed) to mark colliding normal file as "removed" without unlinking it. This patch uses "hg debugdirstate" instead of "hg status" in test, because: - choosing "local largefile" hides "removed" status of "remote normal file" in "hg status" output, and - "hg status" for "large2" in this case has another problem fixed in the subsequent patch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
     1
all()
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
     2
draft()
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
     3
::tip
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
     4
draft() and ::tip
21285
7078ce067367 revsetbenchmark: add `::tip and draft()` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21204
diff changeset
     5
::tip and draft()
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
     6
0::tip
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
     7
roots(0::tip)
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
     8
author(lmoscovicz)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
     9
author(mpm)
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    10
author(lmoscovicz) or author(mpm)
21295
883e268cb860 revsetbenchmark: add `author(mpm) or author(lmoscovicz)` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21285
diff changeset
    11
author(mpm) or author(lmoscovicz)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
    12
tip:0
20754
f15ff553b762 revset: changed minrev and maxrev implementations to use ordered sets
Lucas Moscovicz <lmoscovicz@fb.com>
parents: 20744
diff changeset
    13
max(tip:0)
f15ff553b762 revset: changed minrev and maxrev implementations to use ordered sets
Lucas Moscovicz <lmoscovicz@fb.com>
parents: 20744
diff changeset
    14
min(0:tip)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
    15
0::
20754
f15ff553b762 revset: changed minrev and maxrev implementations to use ordered sets
Lucas Moscovicz <lmoscovicz@fb.com>
parents: 20744
diff changeset
    16
min(0::)
20894
04e1596d5dbd revset: improve _descendants performance
Durham Goode <durham@fb.com>
parents: 20861
diff changeset
    17
roots((tip~100::) - (tip~100::tip))
20861
c2a81aa19980 revsetbenchmark: add entry for ::rev::
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20777
diff changeset
    18
::p1(p1(tip))::
21204
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    19
public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    20
:10000 and public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    21
draft()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    22
:10000 and draft()
21546
cb0e28d61905 revset-benchmark: add max(::(tip~20) - obsolete())
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21295
diff changeset
    23
max(::(tip~20) - obsolete())
21939
f486001f9d6f revset: optimize baseset.__sub__ (issue4313)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21546
diff changeset
    24
roots((0:tip)::)