/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
5557.1.15 by John Arbash Meinel
Merge bzr.dev 5597 to resolve NEWS, aka bzr-2.3.txt
1
# Copyright (C) 2005-2009, 2011 Canonical Ltd
1685.1.80 by Wouter van Heyst
more code cleanup
2
#
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1685.1.80 by Wouter van Heyst
more code cleanup
7
#
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1685.1.80 by Wouter van Heyst
more code cleanup
12
#
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
16
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
17
from .. import (
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
18
    missing,
19
    tests,
20
    )
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
21
from ..missing import (
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
22
    iter_log_revisions,
23
    )
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
24
from . import TestCaseWithTransport
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
25
1534.4.28 by Robert Collins
first cut at merge from integration.
26
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
27
class TestMissing(TestCaseWithTransport):
28
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
29
    def assertUnmerged(self, expected, source, target, restrict='all',
30
                       backward=False):
31
        unmerged = missing.find_unmerged(source, target, restrict=restrict,
32
                                         backward=backward)
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
33
        self.assertEqual(expected, unmerged)
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
34
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
35
    def test_find_unmerged(self):
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
36
        original_tree = self.make_branch_and_tree('original')
37
        original = original_tree.branch
38
        puller_tree = self.make_branch_and_tree('puller')
39
        puller = puller_tree.branch
40
        merger_tree = self.make_branch_and_tree('merger')
41
        merger = merger_tree.branch
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
42
        self.assertUnmerged(([], []), original, puller)
6855.4.1 by Jelmer Vernooij
Yet more bees.
43
        original_tree.commit('a', rev_id=b'a')
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
44
        self.assertUnmerged(([('1', b'a', 0)], []), original, puller)
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
45
        puller_tree.pull(original)
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
46
        self.assertUnmerged(([], []), original, puller)
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
47
        merger_tree.pull(original)
6855.4.1 by Jelmer Vernooij
Yet more bees.
48
        original_tree.commit('b', rev_id=b'b')
49
        original_tree.commit('c', rev_id=b'c')
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
50
        self.assertUnmerged(([('2', b'b', 0), ('3', b'c', 0)], []),
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
51
                            original, puller)
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
52
        self.assertUnmerged(([('3', b'c', 0), ('2', b'b', 0)], []),
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
53
                            original, puller, backward=True)
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
54
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
55
        puller_tree.pull(original)
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
56
        self.assertUnmerged(([], []), original, puller)
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
57
        self.assertUnmerged(([('2', b'b', 0), ('3', b'c', 0)], []),
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
58
                            original, merger)
1551.15.70 by Aaron Bentley
Avoid using builtins.merge
59
        merger_tree.merge_from_branch(original)
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
60
        self.assertUnmerged(([('2', b'b', 0), ('3', b'c', 0)], []),
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
61
                            original, merger)
6855.4.1 by Jelmer Vernooij
Yet more bees.
62
        merger_tree.commit('d', rev_id=b'd')
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
63
        self.assertUnmerged(([], [('2', b'd', 0)]), original, merger)
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
64
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
65
    def test_iter_log_revisions(self):
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
66
        base_tree = self.make_branch_and_tree('base')
67
        self.build_tree(['base/a'])
6855.4.1 by Jelmer Vernooij
Yet more bees.
68
        base_tree.add(['a'], [b'a-id'])
69
        base_tree.commit('add a', rev_id=b'b-1')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
70
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
71
        child_tree = base_tree.controldir.sprout('child').open_workingtree()
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
72
73
        self.build_tree(['child/b'])
6855.4.1 by Jelmer Vernooij
Yet more bees.
74
        child_tree.add(['b'], [b'b-id'])
75
        child_tree.commit('adding b', rev_id=b'c-2')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
76
77
        child_tree.remove(['a'])
6855.4.1 by Jelmer Vernooij
Yet more bees.
78
        child_tree.commit('removing a', rev_id=b'c-3')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
79
6855.4.1 by Jelmer Vernooij
Yet more bees.
80
        self.build_tree_contents([('child/b', b'new contents for b\n')])
81
        child_tree.commit('modifying b', rev_id=b'c-4')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
82
83
        child_tree.rename_one('b', 'c')
6855.4.1 by Jelmer Vernooij
Yet more bees.
84
        child_tree.commit('rename b=>c', rev_id=b'c-5')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
85
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
86
        base_extra, child_extra = missing.find_unmerged(base_tree.branch,
3677.1.4 by Vincent Ladeuil
Replace 'reverse' by 'backward' when talking about revision order.
87
                                                        child_tree.branch)
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
88
        results = list(iter_log_revisions(base_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
89
                                          base_tree.branch.repository,
90
                                          verbose=True))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
91
        self.assertEqual([], results)
92
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
93
        results = list(iter_log_revisions(child_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
94
                                          child_tree.branch.repository,
95
                                          verbose=True))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
96
        self.assertEqual(4, len(results))
97
6809.1.1 by Martin
Apply 2to3 ws_comma fixer
98
        r0, r1, r2, r3 = results
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
99
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
100
        self.assertEqual([('2', b'c-2'), ('3', b'c-3'),
7143.15.2 by Jelmer Vernooij
Run autopep8.
101
                          ('4', b'c-4'), ('5', b'c-5'), ],
3677.1.2 by Vincent Ladeuil
Fix tests broken by previous commit.
102
                         [(r.revno, r.rev.revision_id) for r in results])
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
103
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
104
        delta0 = r0.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
105
        self.assertNotEqual(None, delta0)
7358.11.3 by Jelmer Vernooij
TreeDelta holds TreeChange objects rather than tuples of various sizes.
106
        self.assertEqual([('b', 'file')], [(c.path[1], c.kind[1]) for c in delta0.added])
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
107
        self.assertEqual([], delta0.removed)
108
        self.assertEqual([], delta0.renamed)
109
        self.assertEqual([], delta0.modified)
110
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
111
        delta1 = r1.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
112
        self.assertNotEqual(None, delta1)
113
        self.assertEqual([], delta1.added)
7358.11.3 by Jelmer Vernooij
TreeDelta holds TreeChange objects rather than tuples of various sizes.
114
        self.assertEqual([('a', 'file')], [(c.path[0], c.kind[0]) for c in delta1.removed])
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
115
        self.assertEqual([], delta1.renamed)
116
        self.assertEqual([], delta1.modified)
117
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
118
        delta2 = r2.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
119
        self.assertNotEqual(None, delta2)
120
        self.assertEqual([], delta2.added)
121
        self.assertEqual([], delta2.removed)
122
        self.assertEqual([], delta2.renamed)
7143.15.2 by Jelmer Vernooij
Run autopep8.
123
        self.assertEqual(
7358.11.3 by Jelmer Vernooij
TreeDelta holds TreeChange objects rather than tuples of various sizes.
124
            [('b', 'file', True, False)],
125
            [(c.path[1], c.kind[1], c.changed_content, c.meta_modified()) for c in delta2.modified])
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
126
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
127
        delta3 = r3.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
128
        self.assertNotEqual(None, delta3)
129
        self.assertEqual([], delta3.added)
130
        self.assertEqual([], delta3.removed)
7358.11.3 by Jelmer Vernooij
TreeDelta holds TreeChange objects rather than tuples of various sizes.
131
        self.assertEqual(
132
            [('b', 'c', 'file', False, False)],
133
            [(c.path[0], c.path[1], c.kind[1], c.changed_content, c.meta_modified())
134
                for c in delta3.renamed])
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
135
        self.assertEqual([], delta3.modified)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
136
137
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
138
class TestFindUnmerged(tests.TestCaseWithTransport):
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
139
140
    def assertUnmerged(self, local, remote, local_branch, remote_branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
141
                       restrict='all', include_merged=False, backward=False,
142
                       local_revid_range=None, remote_revid_range=None):
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
143
        """Check the output of find_unmerged_mainline_revisions"""
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
144
        local_extra, remote_extra = missing.find_unmerged(
3921.3.7 by Marius Kruger
just filter the missing revisions once all have been calculated.
145
            local_branch, remote_branch, restrict,
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
146
            include_merged=include_merged, backward=backward,
3921.3.7 by Marius Kruger
just filter the missing revisions once all have been calculated.
147
            local_revid_range=local_revid_range,
148
            remote_revid_range=remote_revid_range)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
149
        self.assertEqual(local, local_extra)
150
        self.assertEqual(remote, remote_extra)
151
152
    def test_same_branch(self):
153
        tree = self.make_branch_and_tree('tree')
154
        rev1 = tree.commit('one')
155
        tree.lock_read()
156
        self.addCleanup(tree.unlock)
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
157
        self.assertUnmerged([], [], tree.branch, tree.branch)
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
158
        self.assertUnmerged([], [], tree.branch, tree.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
159
                            local_revid_range=(rev1, rev1))
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
160
161
    def test_one_ahead(self):
162
        tree = self.make_branch_and_tree('tree')
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
163
        tree.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
164
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
165
        rev2 = tree2.commit('two')
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
166
        self.assertUnmerged([], [('2', rev2, 0)], tree.branch, tree2.branch)
167
        self.assertUnmerged([('2', rev2, 0)], [], tree2.branch, tree.branch)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
168
169
    def test_restrict(self):
170
        tree = self.make_branch_and_tree('tree')
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
171
        tree.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
172
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
173
        rev2 = tree2.commit('two')
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
174
        self.assertUnmerged([], [('2', rev2, 0)], tree.branch, tree2.branch)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
175
        self.assertUnmerged([], None, tree.branch, tree2.branch, 'local')
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
176
        self.assertUnmerged(None, [('2', rev2, 0)], tree.branch, tree2.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
177
                            'remote')
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
178
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
179
    def test_merged(self):
180
        tree = self.make_branch_and_tree('tree')
181
        rev1 = tree.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
182
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
183
        tree2.commit('two')
184
        tree2.commit('three')
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
185
        tree.merge_from_branch(tree2.branch)
186
        rev4 = tree.commit('four')
187
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
188
        self.assertUnmerged([('2', rev4, 0)], [], tree.branch, tree2.branch)
189
        self.assertUnmerged([('2', rev4, 0)], [], tree.branch, tree2.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
190
                            local_revid_range=(rev4, rev4))
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
191
        self.assertUnmerged([], [], tree.branch, tree2.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
192
                            local_revid_range=(rev1, rev1))
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
193
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
194
    def test_include_merged(self):
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
195
        tree = self.make_branch_and_tree('tree')
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
196
        tree.commit('one', rev_id=b'rev1')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
197
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
198
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
199
        tree2.commit('two', rev_id=b'rev2')
6855.4.1 by Jelmer Vernooij
Yet more bees.
200
        rev3 = tree2.commit('three', rev_id=b'rev3')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
201
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
202
        tree3 = tree2.controldir.sprout('tree3').open_workingtree()
6855.4.1 by Jelmer Vernooij
Yet more bees.
203
        rev4 = tree3.commit('four', rev_id=b'rev4')
204
        rev5 = tree3.commit('five', rev_id=b'rev5')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
205
206
        tree2.merge_from_branch(tree3.branch)
6855.4.1 by Jelmer Vernooij
Yet more bees.
207
        rev6 = tree2.commit('six', rev_id=b'rev6')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
208
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
209
        self.assertUnmerged([], [('2', b'rev2', 0), ('3', b'rev3', 0),
210
                                 ('4', b'rev6', 0),
211
                                 ('3.1.1', b'rev4', 1), ('3.1.2', b'rev5', 1),
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
212
                                 ],
3921.3.14 by Marius Kruger
put spaces after commas
213
                            tree.branch, tree2.branch,
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
214
                            include_merged=True)
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
215
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
216
        self.assertUnmerged([], [('4', b'rev6', 0),
217
                                 ('3.1.2', b'rev5', 1), ('3.1.1', b'rev4', 1),
218
                                 ('3', b'rev3', 0), ('2', b'rev2', 0),
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
219
                                 ],
3921.3.14 by Marius Kruger
put spaces after commas
220
                            tree.branch, tree2.branch,
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
221
                            include_merged=True,
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
222
                            backward=True)
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
223
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
224
        self.assertUnmerged(
225
            [], [('4', b'rev6', 0)],
226
            tree.branch, tree2.branch,
227
            include_merged=True, remote_revid_range=(rev6, rev6))
228
229
        self.assertUnmerged(
230
            [], [('3', b'rev3', 0), ('3.1.1', b'rev4', 1)],
231
            tree.branch, tree2.branch,
232
            include_merged=True, remote_revid_range=(rev3, rev4))
233
234
        self.assertUnmerged(
235
            [], [('4', b'rev6', 0), ('3.1.2', b'rev5', 1)],
236
            tree.branch, tree2.branch,
237
            include_merged=True, remote_revid_range=(rev5, rev6))
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
238
239
    def test_revision_range(self):
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
240
        local = self.make_branch_and_tree('local')
241
        lrevid1 = local.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
242
        remote = local.controldir.sprout('remote').open_workingtree()
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
243
        rrevid2 = remote.commit('two')
244
        rrevid3 = remote.commit('three')
245
        rrevid4 = remote.commit('four')
246
        lrevid2 = local.commit('two')
247
        lrevid3 = local.commit('three')
248
        lrevid4 = local.commit('four')
6719.1.2 by Jelmer Vernooij
Fix some tests.
249
        local_extra = [('2', lrevid2, 0), ('3', lrevid3, 0), ('4', lrevid4, 0)]
7143.15.2 by Jelmer Vernooij
Run autopep8.
250
        remote_extra = [('2', rrevid2, 0), ('3', rrevid3, 0),
251
                        ('4', rrevid4, 0)]
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
252
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
253
        # control
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
254
        self.assertUnmerged(local_extra, remote_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
255
                            local.branch, remote.branch)
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
256
        self.assertUnmerged(local_extra, remote_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
257
                            local.branch, remote.branch, local_revid_range=(
258
                                None, None),
259
                            remote_revid_range=(None, None))
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
260
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
261
        # exclude local revisions
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
262
        self.assertUnmerged(
263
            [('2', lrevid2, 0)], remote_extra,
264
            local.branch, remote.branch, local_revid_range=(lrevid2, lrevid2))
265
        self.assertUnmerged(
266
            [('2', lrevid2, 0), ('3', lrevid3, 0)], remote_extra,
267
            local.branch, remote.branch, local_revid_range=(lrevid2, lrevid3))
268
        self.assertUnmerged(
269
            [('2', lrevid2, 0), ('3', lrevid3, 0)], None,
270
            local.branch, remote.branch, 'local',
271
            local_revid_range=(lrevid2, lrevid3))
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
272
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
273
        # exclude remote revisions
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
274
        self.assertUnmerged(
275
            local_extra, [('2', rrevid2, 0)],
276
            local.branch, remote.branch, remote_revid_range=(None, rrevid2))
277
        self.assertUnmerged(
278
            local_extra, [('2', rrevid2, 0)],
279
            local.branch, remote.branch, remote_revid_range=(lrevid1, rrevid2))
280
        self.assertUnmerged(
281
            local_extra, [('2', rrevid2, 0)],
282
            local.branch, remote.branch, remote_revid_range=(rrevid2, rrevid2))
283
        self.assertUnmerged(
284
            local_extra, [('2', rrevid2, 0), ('3', rrevid3, 0)],
285
            local.branch, remote.branch, remote_revid_range=(None, rrevid3))
286
        self.assertUnmerged(
287
            local_extra, [('2', rrevid2, 0), ('3', rrevid3, 0)],
288
            local.branch, remote.branch, remote_revid_range=(rrevid2, rrevid3))
289
        self.assertUnmerged(
290
            local_extra, [('3', rrevid3, 0)],
291
            local.branch, remote.branch, remote_revid_range=(rrevid3, rrevid3))
6719.1.2 by Jelmer Vernooij
Fix some tests.
292
        self.assertUnmerged(None, [('2', rrevid2, 0), ('3', rrevid3, 0)],
7143.15.2 by Jelmer Vernooij
Run autopep8.
293
                            local.branch, remote.branch, 'remote',
294
                            remote_revid_range=(rrevid2, rrevid3))
3921.3.7 by Marius Kruger
just filter the missing revisions once all have been calculated.
295
296
        # exclude local and remote revisions
6719.1.2 by Jelmer Vernooij
Fix some tests.
297
        self.assertUnmerged([('3', lrevid3, 0)], [('3', rrevid3, 0)],
7143.15.2 by Jelmer Vernooij
Run autopep8.
298
                            local.branch, remote.branch, local_revid_range=(
299
                                lrevid3, lrevid3),
300
                            remote_revid_range=(rrevid3, rrevid3))