Mercurial > hg
annotate tests/test-empty-file.t @ 23238:39eb9f78f968
context.status: move manifest caching trick to _buildstatus()
In basectx._buildstatus(), we read the manifests for the two revisions
being compared. For "caching reasons" unknown to me, it is better to
read the earlier manifest first, which basectx._prestatus() takes care
of. However, if the 'self' context is a committablectx and the 'other'
context is the parent of the working directory (as in the very common
case of plain "hg status"), there is no need to read any manifests at
all -- all that's needed is the dirstate status. To avoid reading the
manifests, _prestatus() is overridden in committablectx and avoids
calling its super method, and _buildstatus() calls its super method
only if the 'other' context is not the parent of the working
directory.
It seems easier to follow what's happening if we move the pre-fetching
to _buildstatus() just before the place where the manifests are
fetched. We just need to add an extra check that the revision is not
None to handle the case that was previously handled by subclass
overriding. That also makes it safe for committablectx._prestatus() to
call its parent, although the latter now becomes empty, so we won't
bother.
author | Martin von Zweigbergk <martinvonz@gmail.com> |
---|---|
date | Sun, 12 Oct 2014 00:00:13 -0700 |
parents | f2719b387380 |
children |
rev | line source |
---|---|
12159
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
1 $ hg init a |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
2 $ cd a |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
3 $ touch empty1 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
4 $ hg add empty1 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
5 $ hg commit -m 'add empty1' |
3509
9de0e64545a3
Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
6 |
12159
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
7 $ touch empty2 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
8 $ hg add empty2 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
9 $ hg commit -m 'add empty2' |
3509
9de0e64545a3
Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
10 |
12159
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
11 $ hg up -C 0 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
12 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
13 $ touch empty3 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
14 $ hg add empty3 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
15 $ hg commit -m 'add empty3' |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
16 created new head |
3509
9de0e64545a3
Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
17 |
12159
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
18 $ hg heads |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
19 changeset: 2:a1cb177e0d44 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
20 tag: tip |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
21 parent: 0:1e1d9c4e5b64 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
22 user: test |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
23 date: Thu Jan 01 00:00:00 1970 +0000 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
24 summary: add empty3 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
25 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
26 changeset: 1:097d2b0e17f6 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
27 user: test |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
28 date: Thu Jan 01 00:00:00 1970 +0000 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
29 summary: add empty2 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
30 |
3509
9de0e64545a3
Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
31 |
12159
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
32 $ hg merge 1 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
34 (branch merge, don't forget to commit) |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
35 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
36 Before changeset 05257fd28591, we didn't notice the |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
37 empty file that came from rev 1: |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
38 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
39 $ hg status |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
40 M empty2 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
41 $ hg commit -m merge |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
42 $ hg manifest --debug tip |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
43 b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty1 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
44 b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty2 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
45 b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty3 |
8bedcfc38659
tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
46 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12159
diff
changeset
|
47 $ cd .. |