~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge.py

  • Committer: Patch Queue Manager
  • Date: 2011-10-09 13:52:06 UTC
  • mfrom: (6202.1.3 revno-revision)
  • Revision ID: pqm@pqm.ubuntu.com-20111009135206-t3utsln6mtzv9eut
(jelmer) Add a --revision argument to 'bzr revno'. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
from bzrlib.merge import transform_tree, merge_inner, _PlanMerge
38
38
from bzrlib.osutils import basename, pathjoin, file_kind
39
39
from bzrlib.tests import (
 
40
    features,
40
41
    TestCaseWithMemoryTransport,
41
42
    TestCaseWithTransport,
42
43
    test_merge_core,
137
138
 
138
139
    def test_merge_unrelated_retains_root(self):
139
140
        wt = self.make_branch_and_tree('tree')
140
 
        root_id_before_merge = wt.get_root_id()
141
 
        other_tree = self.make_branch_and_tree('other')
142
 
        # Do a commit so there is something to merge
143
 
        other_tree.commit('commit other')
144
 
        self.assertNotEquals(root_id_before_merge, other_tree.get_root_id())
145
 
        wt.merge_from_branch(other_tree.branch,
146
 
                             from_revision=_mod_revision.NULL_REVISION)
147
 
        self.assertEqual(root_id_before_merge, wt.get_root_id())
148
 
 
149
 
    def test_merge_preview_unrelated_retains_root(self):
150
 
        wt = self.make_branch_and_tree('tree')
151
 
        other_tree = self.make_branch_and_tree('other')
152
 
        # Do a commit so there is something to merge
153
 
        other_tree.commit('commit other')
 
141
        other_tree = self.make_branch_and_tree('other')
 
142
        self.addCleanup(other_tree.lock_read().unlock)
154
143
        merger = _mod_merge.Merge3Merger(wt, wt, wt.basis_tree(), other_tree,
155
144
                                         this_branch=wt.branch,
156
145
                                         do_merge=False)
157
 
        with merger.make_preview_transform() as tt:
158
 
            preview = tt.get_preview_tree()
159
 
            self.assertEqual(wt.get_root_id(), preview.get_root_id())
 
146
        with transform.TransformPreview(wt) as merger.tt:
 
147
            merger._compute_transform()
 
148
            new_root_id = merger.tt.final_file_id(merger.tt.root)
 
149
            self.assertEqual(wt.get_root_id(), new_root_id)
160
150
 
161
151
    def test_create_rename(self):
162
152
        """Rename an inventory entry while creating the file"""
430
420
        self.addCleanup(tree.unlock)
431
421
        self.build_tree(['a'])
432
422
        tree.add('a')
433
 
        tree.commit("added a")
434
 
        first_rev = tree.branch.revision_history()[0]
 
423
        first_rev = tree.commit("added a")
435
424
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
436
425
                                          _mod_revision.NULL_REVISION,
437
426
                                          first_rev)
519
508
        self.addCleanup(tree.unlock)
520
509
        self.build_tree(['a'])
521
510
        tree.add('a')
522
 
        tree.commit("added a")
 
511
        first_rev = tree.commit("added a")
523
512
        old_root_id = tree.get_root_id()
524
 
        first_rev = tree.branch.revision_history()[0]
525
513
        merger = _mod_merge.Merger.from_revision_ids(None, tree,
526
514
                                          _mod_revision.NULL_REVISION,
527
515
                                          first_rev)
2195
2183
        self.assertTrue(wt.is_executable('foo-id'))
2196
2184
 
2197
2185
    def test_create_symlink(self):
2198
 
        self.requireFeature(tests.SymlinkFeature)
 
2186
        self.requireFeature(features.SymlinkFeature)
2199
2187
        #   A
2200
2188
        #  / \
2201
2189
        # B   C
2260
2248
                             wt.get_file_text('foo-id'))
2261
2249
 
2262
2250
    def test_modified_symlink(self):
2263
 
        self.requireFeature(tests.SymlinkFeature)
 
2251
        self.requireFeature(features.SymlinkFeature)
2264
2252
        #   A       Create symlink foo => bar
2265
2253
        #  / \
2266
2254
        # B   C     B relinks foo => baz
2305
2293
        self.assertEqual('bing', wt.get_symlink_target('foo-id'))
2306
2294
 
2307
2295
    def test_renamed_symlink(self):
2308
 
        self.requireFeature(tests.SymlinkFeature)
 
2296
        self.requireFeature(features.SymlinkFeature)
2309
2297
        #   A       Create symlink foo => bar
2310
2298
        #  / \
2311
2299
        # B   C     B renames foo => barry
2361
2349
        self.assertEqual('blah', wt.id2path('foo-id'))
2362
2350
 
2363
2351
    def test_symlink_no_content_change(self):
2364
 
        self.requireFeature(tests.SymlinkFeature)
 
2352
        self.requireFeature(features.SymlinkFeature)
2365
2353
        #   A       Create symlink foo => bar
2366
2354
        #  / \
2367
2355
        # B   C     B relinks foo => baz
2412
2400
        self.assertEqual('bing', wt.get_symlink_target('foo-id'))
2413
2401
 
2414
2402
    def test_symlink_this_changed_kind(self):
2415
 
        self.requireFeature(tests.SymlinkFeature)
 
2403
        self.requireFeature(features.SymlinkFeature)
2416
2404
        #   A       Nothing
2417
2405
        #  / \
2418
2406
        # B   C     B creates symlink foo => bar
2465
2453
 
2466
2454
    def test_symlink_all_wt(self):
2467
2455
        """Check behavior if all trees are Working Trees."""
2468
 
        self.requireFeature(tests.SymlinkFeature)
 
2456
        self.requireFeature(features.SymlinkFeature)
2469
2457
        # The big issue is that entry.symlink_target is None for WorkingTrees.
2470
2458
        # So we need to make sure we handle that case correctly.
2471
2459
        #   A   foo => bar