Mercurial > hg
annotate tests/test-rebase-brute-force.t @ 34107:4f60720cf0df
blackbox: fix rotation with chg
The added test will show:
$ $PYTHON showsize.py .hg/blackbox*
.hg/blackbox.log: < 500
.hg/blackbox.log.1: < 500
.hg/blackbox.log.2: < 500
.hg/blackbox.log.3: < 500
.hg/blackbox.log.4: < 500
.hg/blackbox.log.5: >= 500
with previous code.
The issue is caused by blackbox caching file objects *by path*, and the
rotation size check could run on a wrong file object (i.e. it should check
"blackbox.log", but `filehandles["blackbox.log"]` contains a file object
that has been renamed to "blackbox.log.5").
This patch removes the "filehandlers" global cache added by 45313f5a3a8c to
solve the issue.
I think the original patch was trying to make different ui objects use a same
file object if their blackbox.log path is the same. In theory it could also
be problematic in the rotation case. Anyway, that should become unnecessary
after D650.
Differential Revision: https://phab.mercurial-scm.org/D648
author | Jun Wu <quark@fb.com> |
---|---|
date | Wed, 06 Sep 2017 19:27:30 -0700 |
parents | 19f495fef0a3 |
children | 1644623ab096 |
rev | line source |
---|---|
33708 | 1 $ cat >> $HGRCPATH <<EOF |
2 > [extensions] | |
3 > drawdag=$TESTDIR/drawdag.py | |
4 > bruterebase=$TESTDIR/bruterebase.py | |
5 > [experimental] | |
6 > evolution=createmarkers,allowunstable | |
7 > EOF | |
8 $ init() { | |
9 > N=`expr ${N:-0} + 1` | |
10 > cd $TESTTMP && hg init repo$N && cd repo$N | |
11 > hg debugdrawdag | |
12 > } | |
13 | |
14 Source looks like "N" | |
15 | |
16 $ init <<'EOS' | |
17 > C D | |
18 > |\| | |
19 > A B Z | |
20 > EOS | |
21 | |
22 $ hg debugbruterebase 'all()-Z' Z | |
23 A: A':Z | |
24 B: B':Z | |
25 AB: A':Z B':Z | |
33789
19f495fef0a3
rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents:
33786
diff
changeset
|
26 C: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents |
33708 | 27 AC: A':Z C':A'B |
28 BC: B':Z C':B'A | |
29 ABC: A':Z B':Z C':A'B' | |
30 D: D':Z | |
31 AD: A':Z D':Z | |
32 BD: B':Z D':B' | |
33 ABD: A':Z B':Z D':B' | |
33789
19f495fef0a3
rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents:
33786
diff
changeset
|
34 CD: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents |
33786
0975506120fb
rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents:
33708
diff
changeset
|
35 ACD: A':Z C':A'B D':Z |
33708 | 36 BCD: B':Z C':B'A D':B' |
37 ABCD: A':Z B':Z C':A'B' D':B' | |
38 | |
39 Moving backwards | |
40 | |
41 $ init <<'EOS' | |
42 > C | |
43 > |\ | |
44 > A B | |
45 > | | |
46 > Z | |
47 > EOS | |
48 $ hg debugbruterebase 'all()-Z' Z | |
49 B: B':Z | |
50 A: | |
51 BA: B':Z | |
33789
19f495fef0a3
rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents:
33786
diff
changeset
|
52 C: ABORT: cannot rebase 3:b8d7149b562b without moving at least one of its parents |
33708 | 53 BC: B':Z C':B'A |
54 AC: | |
33786
0975506120fb
rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents:
33708
diff
changeset
|
55 BAC: B':Z C':B'A |