~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_revision.py

  • Committer: John Arbash Meinel
  • Date: 2006-06-29 23:36:54 UTC
  • mto: (1711.4.39 win32-accepted)
  • mto: This revision was merged to the branch mainline in revision 1836.
  • Revision ID: john@arbash-meinel.com-20060629233654-922fe7dba1ed58c8
Nothing to clean up if self._log_file is None

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 Canonical Ltd
2
 
#
 
1
# (C) 2005 Canonical Ltd
 
2
 
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
5
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
 
#
 
7
 
8
8
# This program is distributed in the hope that it will be useful,
9
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
11
# GNU General Public License for more details.
12
 
#
 
12
 
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
18
import os
19
19
import warnings
20
20
 
21
 
from bzrlib import (
22
 
    revision,
23
 
    )
24
21
from bzrlib.branch import Branch
25
22
from bzrlib.errors import NoSuchRevision
26
 
from bzrlib.deprecated_graph import Graph
 
23
from bzrlib.graph import Graph
27
24
from bzrlib.revision import (find_present_ancestors, combined_graph,
28
25
                             common_ancestor,
29
 
                             is_ancestor, MultipleRevisionSources,
30
 
                             NULL_REVISION)
31
 
from bzrlib.tests import TestCase, TestCaseWithTransport
 
26
                             is_ancestor, MultipleRevisionSources)
 
27
from bzrlib.tests import TestCaseWithTransport
32
28
from bzrlib.trace import mutter
33
29
from bzrlib.workingtree import WorkingTree
34
30
 
70
66
    tree2.commit("Commit four", rev_id="b@u-0-3")
71
67
    tree2.commit("Commit five", rev_id="b@u-0-4")
72
68
    revisions_2 = br2.revision_history()
73
 
    self.assertEquals(revisions_2[-1], 'b@u-0-4')
74
69
    
75
 
    tree1.merge_from_branch(br2)
 
70
    br1.fetch(br2)
 
71
    tree1.add_pending_merge(revisions_2[4])
 
72
    self.assertEquals(revisions_2[4], 'b@u-0-4')
76
73
    tree1.commit("Commit six", rev_id="a@u-0-3")
77
74
    tree1.commit("Commit seven", rev_id="a@u-0-4")
78
75
    tree2.commit("Commit eight", rev_id="b@u-0-5")
79
 
    self.assertEquals(br2.revision_history()[-1], 'b@u-0-5')
80
76
    
81
 
    tree1.merge_from_branch(br2)
 
77
    br1.fetch(br2)
 
78
    tree1.add_pending_merge(br2.revision_history()[5])
82
79
    tree1.commit("Commit nine", rev_id="a@u-0-5")
83
 
    # DO NOT MERGE HERE - we WANT a GHOST.
84
 
    tree2.add_parent_tree_id(br1.revision_history()[4])
 
80
    # DO NOT FETCH HERE - we WANT a GHOST.
 
81
    # br2.fetch(br1)
 
82
    tree2.add_pending_merge(br1.revision_history()[4])
85
83
    tree2.commit("Commit ten - ghost merge", rev_id="b@u-0-6")
86
84
    
87
85
    return br1, br2
156
154
        wt2.commit("Commit twelve", rev_id="b@u-0-8")
157
155
        wt2.commit("Commit thirtteen", rev_id="b@u-0-9")
158
156
 
159
 
        wt1.merge_from_branch(self.br2)
 
157
        self.br1.fetch(self.br2)
 
158
        wt1.add_pending_merge(self.br2.revision_history()[6])
160
159
        wt1.commit("Commit fourtten", rev_id="a@u-0-6")
161
160
 
162
 
        wt2.merge_from_branch(self.br1)
 
161
        self.br2.fetch(self.br1)
 
162
        wt2.add_pending_merge(self.br1.revision_history()[6])
163
163
        wt2.commit("Commit fifteen", rev_id="b@u-0-10")
164
164
 
165
165
        from bzrlib.revision import MultipleRevisionSources
221
221
        self.assertTrue(common_ancestor(revisions_2[6], revisions[5], sources),
222
222
                        (revisions[4], revisions_2[5]))
223
223
        self.assertEqual(None, common_ancestor(None, revisions[5], sources))
224
 
        self.assertEqual(NULL_REVISION,
225
 
            common_ancestor(NULL_REVISION, NULL_REVISION, sources))
226
 
        self.assertEqual(NULL_REVISION,
227
 
            common_ancestor(revisions[0], NULL_REVISION, sources))
228
 
        self.assertEqual(NULL_REVISION,
229
 
            common_ancestor(NULL_REVISION, revisions[0], sources))
230
224
 
231
225
    def test_combined(self):
232
226
        """combined_graph
234
228
        """
235
229
        br1, br2 = make_branches(self)
236
230
        source = MultipleRevisionSources(br1.repository, br2.repository)
237
 
        combined_1 = combined_graph(br1.last_revision(),
 
231
        combined_1 = combined_graph(br1.last_revision(), 
238
232
                                    br2.last_revision(), source)
239
233
        combined_2 = combined_graph(br2.last_revision(),
240
234
                                    br1.last_revision(), source)
287
281
        # in repo 2, which has A, the revision_graph()
288
282
        # should return A and B both.
289
283
        tree_1 = self.make_branch_and_tree('1')
290
 
        tree_1.set_parent_ids(['A'], allow_leftmost_as_ghost=True)
 
284
        tree_1.add_pending_merge('A')
291
285
        tree_1.commit('foo', rev_id='B', allow_pointless=True)
292
286
        tree_2 = self.make_branch_and_tree('2')
293
287
        tree_2.commit('bar', rev_id='A', allow_pointless=True)
296
290
        self.assertEqual({'B':['A'],
297
291
                          'A':[]},
298
292
                         source.get_revision_graph('B'))
299
 
 
300
 
 
301
 
class TestReservedId(TestCase):
302
 
 
303
 
    def test_is_reserved_id(self):
304
 
        self.assertEqual(True, revision.is_reserved_id(NULL_REVISION))
305
 
        self.assertEqual(True, revision.is_reserved_id(
306
 
            revision.CURRENT_REVISION))
307
 
        self.assertEqual(True, revision.is_reserved_id('arch:'))
308
 
        self.assertEqual(False, revision.is_reserved_id('null'))
309
 
        self.assertEqual(False, revision.is_reserved_id(
310
 
            'arch:a@example.com/c--b--v--r'))
311
 
        self.assertEqual(False, revision.is_reserved_id(None))