Mercurial > hg
annotate tests/test-issue2137.t @ 39855:62a532045e71
lfs: access revlog directly
LFS is monkeypatching filelog.filelog and is then accessing
various filelog attributes in the monkeypatched function. This is all
fine.
But some of the attributes being accessed by LFS are revlog centric
and shouldn't be exposed on the file storage interface.
This commit changes the monkeypatched functions to access proxied
attributes on self._revlog instead of self.
This should be safe to do because non-revlog repositories should not
be using filelog instances: instead they should have a separate class
to represent file storage. So it is reasonable for LFS to assume the
_revlog attribute exists and points to a revlog.
Differential Revision: https://phab.mercurial-scm.org/D4714
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 20 Sep 2018 17:47:34 -0700 |
parents | c4ccc73f9d49 |
children |
rev | line source |
---|---|
26420
2fc86d92c4a9
urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents:
17802
diff
changeset
|
1 https://bz.mercurial-scm.org/2137 |
10914
b7ca37b90762
revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
2 |
12204
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
3 Setup: |
10914
b7ca37b90762
revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
4 |
12328
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12204
diff
changeset
|
5 create a little extension that has 3 side-effects: |
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12204
diff
changeset
|
6 1) ensure changelog data is not inlined |
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12204
diff
changeset
|
7 2) make revlog to use lazyparser |
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12204
diff
changeset
|
8 3) test that repo.lookup() works |
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
12204
diff
changeset
|
9 1 and 2 are preconditions for the bug; 3 is the bug. |
10914
b7ca37b90762
revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
10 |
12204
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
11 $ cat > commitwrapper.py <<EOF |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
12 > from mercurial import extensions, node, revlog |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
13 > |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
14 > def reposetup(ui, repo): |
17802
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
15 > class wraprepo(repo.__class__): |
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
16 > def commit(self, *args, **kwargs): |
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
17 > result = super(wraprepo, self).commit(*args, **kwargs) |
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
18 > tip1 = node.short(repo.changelog.tip()) |
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
19 > tip2 = node.short(repo.lookup(tip1)) |
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
20 > assert tip1 == tip2 |
36564
c4ccc73f9d49
tests: add missing b prefix in test python in test-issue2137.t
Augie Fackler <augie@google.com>
parents:
26420
diff
changeset
|
21 > ui.write(b'new tip: %s\n' % tip1) |
17802
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
22 > return result |
a421459b83c0
test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
16913
diff
changeset
|
23 > repo.__class__ = wraprepo |
12204
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
24 > |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
25 > def extsetup(ui): |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
26 > revlog._maxinline = 8 # split out 00changelog.d early |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
27 > revlog._prereadsize = 8 # use revlog.lazyparser |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
28 > EOF |
10914
b7ca37b90762
revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
29 |
12204
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
30 $ cat >> $HGRCPATH <<EOF |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
31 > [extensions] |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
32 > commitwrapper = `pwd`/commitwrapper.py |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
33 > EOF |
10914
b7ca37b90762
revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
34 |
12204
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
35 $ hg init repo1 |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
36 $ cd repo1 |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
37 $ echo a > a |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
38 $ hg commit -A -m'add a with a long commit message to make the changelog a bit bigger' |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
39 adding a |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
40 new tip: 553596fad57b |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
41 |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
42 Test that new changesets are visible to repo.lookup(): |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
43 |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
44 $ echo a >> a |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
45 $ hg commit -m'one more commit to demonstrate the bug' |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
46 new tip: 799ae3599e0e |
10914
b7ca37b90762
revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff
changeset
|
47 |
12204
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
48 $ hg tip |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
49 changeset: 1:799ae3599e0e |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
50 tag: tip |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
51 user: test |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
52 date: Thu Jan 01 00:00:00 1970 +0000 |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
53 summary: one more commit to demonstrate the bug |
c55d69c5fb77
tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents:
11072
diff
changeset
|
54 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12328
diff
changeset
|
55 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12328
diff
changeset
|
56 $ cd .. |