Mercurial > hg
annotate tests/test-merge5.t @ 29917:f32f8bf5dc4c
streamclone: force @filecache properties to be reloaded from file
Before this patch, consumev1() invokes repo.invalidate() after closing
transaction, to force @filecache properties to be reloaded from files
at next access, because streamclone writes data into files directly.
But this doesn't work as expected in the case below:
1. at closing transaction, repo._refreshfilecachestats() refreshes
file stat of each @filecache properties with streamclone-ed files
This means that in-memory properties are treated as valid.
2. but streamclone doesn't changes in-memory properties
This means that in-memory properties are actually invalid.
3. repo.invalidate() just forces to examine file stat of @filecache
properties at the first access after it
Such examination should concludes that reloading from file isn't
needed, because file stat was already refreshed at (1).
Therefore, invalid in-memory cached properties (2) are
unintentionally treated as valid (1).
This patch invokes repo.invalidate() with clearfilecache=True, to
force @filecache properties to be reloaded from file at next access.
BTW, it is accidental that repo.invalidate() without
clearfilecache=True in streamclone case seems to work as expected
before this patch.
If transaction is started via "filtered repo" object,
repo._refreshfilecachestats() tries to refresh file stat of each
@filecache properties on "filtered repo" object, even though all of
them are stored into "unfiltered repo" object.
In this case, repo._refreshfilecachestats() does nothing
unintentionally, but this unexpected behavior causes reloading
@filecache properties after repo.invalidate().
This is reason why this patch should be applied before making
_refreshfilecachestats() correctly refresh file stat of @filecache
properties.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Mon, 12 Sep 2016 03:06:28 +0900 |
parents | 6b1fc09c699a |
children | 527ce85c2e60 |
rev | line source |
---|---|
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
1 $ hg init |
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
2 $ echo This is file a1 > a |
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
3 $ echo This is file b1 > b |
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
4 $ hg add a b |
12155
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
5 $ hg commit -m "commit #0" |
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
6 $ echo This is file b22 > b |
12155
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
7 $ hg commit -m "comment #1" |
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
8 $ hg update 0 |
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
9 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
10 $ rm b |
12155
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
11 $ hg commit -A -m "comment #2" |
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
12 removing b |
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
13 created new head |
12154
c85e07a2d783
test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents:
11978
diff
changeset
|
14 $ hg update 1 |
c85e07a2d783
test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents:
11978
diff
changeset
|
15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
17849
6da47b655d97
update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents:
14485
diff
changeset
|
16 $ rm b |
28065
6b1fc09c699a
update: change default destination to tipmost descendant (issue4673) (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
28029
diff
changeset
|
17 $ hg update -c 2 |
19801
41abe2e3e3b7
update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com>
parents:
19799
diff
changeset
|
18 abort: uncommitted changes |
17849
6da47b655d97
update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents:
14485
diff
changeset
|
19 [255] |
6da47b655d97
update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents:
14485
diff
changeset
|
20 $ hg revert b |
28065
6b1fc09c699a
update: change default destination to tipmost descendant (issue4673) (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
28029
diff
changeset
|
21 $ hg update -c 2 |
12154
c85e07a2d783
test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents:
11978
diff
changeset
|
22 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
23 $ mv a c |
415
c2b9502a4e96
[PATCH] Don't prompt user for keep-vs-delete when the merge is about to be aborted
mpm@selenic.com
parents:
diff
changeset
|
24 |
12155
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
25 Should abort: |
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
26 |
23026
fe80fdf68ba7
test-merge5: remove obsolete '-y' and its motivating comment
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
19801
diff
changeset
|
27 $ hg update 1 |
19799
ab3e42225dbc
update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com>
parents:
19798
diff
changeset
|
28 abort: uncommitted changes |
ab3e42225dbc
update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com>
parents:
19798
diff
changeset
|
29 (commit or update --clean to discard changes) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12155
diff
changeset
|
30 [255] |
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
31 $ mv c a |
12155
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
32 |
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
33 Should succeed: |
94ad12aa0530
test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents:
12154
diff
changeset
|
34 |
23026
fe80fdf68ba7
test-merge5: remove obsolete '-y' and its motivating comment
Martin von Zweigbergk <martinvonz@gmail.com>
parents:
19801
diff
changeset
|
35 $ hg update 1 |
11978
ef4a1ffbf519
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
6350
diff
changeset
|
36 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |