/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge.py

  • Committer: Matt Nordhoff
  • Date: 2009-04-04 02:50:01 UTC
  • mfrom: (4253 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4256.
  • Revision ID: mnordhoff@mattnordhoff.com-20090404025001-z1403k0tatmc8l91
Merge bzr.dev, fixing conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
import os
18
18
from StringIO import StringIO
35
35
from bzrlib.merge import transform_tree, merge_inner, _PlanMerge
36
36
from bzrlib.osutils import pathjoin, file_kind
37
37
from bzrlib.tests import TestCaseWithTransport, TestCaseWithMemoryTransport
38
 
from bzrlib.trace import (enable_test_log, disable_test_log)
39
38
from bzrlib.workingtree import WorkingTree
40
39
 
41
40
 
89
88
        self.failIfExists('bar')
90
89
        wt2 = WorkingTree.open('.') # opens branch2
91
90
        self.assertEqual([tip], wt2.get_parent_ids())
92
 
        
 
91
 
93
92
    def test_pending_with_null(self):
94
93
        """When base is forced to revno 0, parent_ids are set"""
95
94
        wt2 = self.test_unrelated()
96
95
        wt1 = WorkingTree.open('.')
97
96
        br1 = wt1.branch
98
97
        br1.fetch(wt2.branch)
99
 
        # merge all of branch 2 into branch 1 even though they 
 
98
        # merge all of branch 2 into branch 1 even though they
100
99
        # are not related.
101
100
        wt1.merge_from_branch(wt2.branch, wt2.last_revision(), 'null:')
102
101
        self.assertEqual([br1.last_revision(), wt2.branch.last_revision()],
150
149
        self.addCleanup(tree_b.unlock)
151
150
        tree_a.commit(message="hello again")
152
151
        log = StringIO()
153
 
        merge_inner(tree_b.branch, tree_a, tree_b.basis_tree(), 
 
152
        merge_inner(tree_b.branch, tree_a, tree_b.basis_tree(),
154
153
                    this_tree=tree_b, ignore_zero=True)
155
154
        log = self._get_log(keep_log_file=True)
156
155
        self.failUnless('All changes applied successfully.\n' not in log)
157
156
        tree_b.revert()
158
 
        merge_inner(tree_b.branch, tree_a, tree_b.basis_tree(), 
 
157
        merge_inner(tree_b.branch, tree_a, tree_b.basis_tree(),
159
158
                    this_tree=tree_b, ignore_zero=False)
160
159
        log = self._get_log(keep_log_file=True)
161
160
        self.failUnless('All changes applied successfully.\n' in log)
248
247
        self.assertEqual(tree_b.conflicts(),
249
248
                         [conflicts.ContentsConflict('file',
250
249
                          file_id='file-id')])
251
 
    
 
250
 
252
251
    def test_merge_type_registry(self):
253
252
        merge_type_option = option.Option.OPTIONS['merge-type']
254
 
        self.assertFalse('merge4' in [x[0] for x in 
 
253
        self.assertFalse('merge4' in [x[0] for x in
255
254
                        merge_type_option.iter_switches()])
256
255
        registry = _mod_merge.get_merge_type_registry()
257
256
        registry.register_lazy('merge4', 'bzrlib.merge', 'Merge4Merger',
258
257
                               'time-travelling merge')
259
 
        self.assertTrue('merge4' in [x[0] for x in 
 
258
        self.assertTrue('merge4' in [x[0] for x in
260
259
                        merge_type_option.iter_switches()])
261
260
        registry.remove('merge4')
262
 
        self.assertFalse('merge4' in [x[0] for x in 
 
261
        self.assertFalse('merge4' in [x[0] for x in
263
262
                        merge_type_option.iter_switches()])
264
263
 
265
264
    def test_merge_other_moves_we_deleted(self):
313
312
        merger.do_merge()
314
313
        self.assertEqual(tree_a.get_parent_ids(), [tree_b.last_revision()])
315
314
 
 
315
    def test_Merger_defaults_to_DummyProgress(self):
 
316
        branch = self.make_branch('branch')
 
317
        merger = _mod_merge.Merger(branch, pb=None)
 
318
        self.assertIsInstance(merger._pb, progress.DummyProgress)
 
319
 
316
320
    def prepare_cherrypick(self):
317
321
        """Prepare a pair of trees for cherrypicking tests.
318
322
 
718
722
 
719
723
    def test_plan_merge_insert_order(self):
720
724
        """Weave merges are sensitive to the order of insertion.
721
 
        
 
725
 
722
726
        Specifically for overlapping regions, it effects which region gets put
723
727
        'first'. And when a user resolves an overlapping merge, if they use the
724
728
        same ordering, then the lines match the parents, if they don't only