Mercurial > hg
annotate tests/test-issue2137.t @ 40417:49c7b701fdc2 stable
phase: add an archived phase
This phase allows for hidden changesets in the "user space". It differs from
the "internal" phase which is intended for internal by-product only. There
have been discussions at the 4.8 sprint to use such phase to speedup cleanup
after history rewriting operation.
Shipping it in the same release as the 'internal-phase' groups the associated
`requires` entry. The important bit is to have support for this phase in the
earliest version of mercurial possible. Adding the UI to manipulate this new
phase later seems fine.
The current plan for archived usage and user interface are as follow. On a
repository with internal-phase on and evolution off:
* history rewriting command set rewritten changeset in the archived phase.
(This mean updating the cleanupnodes method).
* keep `hg unbundle .hg/strip-backup/X.hg` as a way to restore changeset for
now
(backup bundle need to contains phase data)
* [maybe] add a `hg strip --soft` advance flag
(a light way to expose the feature without getting in the way of a better
UI)
Mercurial 4.8 freeze is too close to get the above in by then.
We don't introduce a new repository `requirement` as we reuse the one
introduced with the 'archived' phase during the 4.8 cycle.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 17 Oct 2018 14:47:01 +0200 |
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 .. |