Mercurial > hg
annotate tests/test-merge4.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 | 63c817ea4a70 |
children | 8561ad49915d |
rev | line source |
---|---|
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
1 $ hg init |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
2 $ echo This is file a1 > a |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
3 $ hg add a |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
4 $ hg commit -m "commit #0" |
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
5 $ echo This is file b1 > b |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
6 $ hg add b |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
7 $ hg commit -m "commit #1" |
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
8 $ hg update 0 |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
9 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
10 $ echo This is file c1 > c |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
11 $ hg add c |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
12 $ hg commit -m "commit #2" |
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
13 created new head |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
14 $ hg merge 1 |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
16 (branch merge, don't forget to commit) |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
17 $ rm b |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
18 $ echo This is file c22 > c |
16536
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
19 |
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
20 Test hg behaves when committing with a missing file added by a merge |
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
21 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
22 $ hg commit -m "commit #3" |
16536
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
23 abort: cannot commit merge with missing files |
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
24 [255] |
416
5e9e8b8d2629
[PATCH] Removal of a file added by merging branches
mpm@selenic.com
parents:
diff
changeset
|
25 |