~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_too_much.py

(mbp) merge bzr.dev to 0.8, prepare for release

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
from cStringIO import StringIO
38
38
import os
39
39
import re
40
 
import shutil
41
40
import sys
42
41
 
 
42
import bzrlib
43
43
from bzrlib.branch import Branch
44
44
import bzrlib.bzrdir as bzrdir
45
45
from bzrlib.errors import BzrCommandError
46
 
from bzrlib.osutils import has_symlinks, pathjoin
 
46
from bzrlib.osutils import has_symlinks, pathjoin, rmtree
47
47
from bzrlib.tests.HTTPTestUtil import TestCaseWithWebserver
48
48
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
49
49
from bzrlib.tests.blackbox import ExternalBase
63
63
    def test_whoami_branch(self):
64
64
        """branch specific user identity works."""
65
65
        self.runbzr('init')
66
 
        f = file('.bzr/email', 'wt')
67
 
        f.write('Branch Identity <branch@identi.ty>')
68
 
        f.close()
 
66
        b = bzrlib.branch.Branch.open('.')
 
67
        b.control_files.put_utf8('email', 'Branch Identity <branch@identi.ty>')
69
68
        bzr_email = os.environ.get('BZREMAIL')
70
69
        if bzr_email is not None:
71
70
            del os.environ['BZREMAIL']
279
278
        self.example_branch()
280
279
        os.chdir('..')
281
280
        self.runbzr('branch a b')
282
 
        self.assertFileEqual('b\n', 'b/.bzr/branch-name')
 
281
        b = bzrlib.branch.Branch.open('b')
 
282
        self.assertEqual('b\n', b.control_files.get_utf8('branch-name').read())
283
283
        self.runbzr('branch a c -r 1')
284
284
        os.chdir('b')
285
285
        self.runbzr('commit -m foo --unchanged')
305
305
        self.assertEqual('2', target.open_workingtree().last_revision())
306
306
        self.assertTrue(target.open_branch().repository.has_revision('2'))
307
307
 
308
 
    def test_merge(self):
309
 
        from bzrlib.branch import Branch
310
 
        
311
 
        os.mkdir('a')
312
 
        os.chdir('a')
313
 
        self.example_branch()
314
 
        os.chdir('..')
315
 
        self.runbzr('branch a b')
316
 
        os.chdir('b')
317
 
        file('goodbye', 'wt').write('quux')
318
 
        self.runbzr(['commit',  '-m',  "more u's are always good"])
319
 
 
320
 
        os.chdir('../a')
321
 
        file('hello', 'wt').write('quuux')
322
 
        # We can't merge when there are in-tree changes
323
 
        self.runbzr('merge ../b', retcode=3)
324
 
        self.runbzr(['commit', '-m', "Like an epidemic of u's"])
325
 
        self.runbzr('merge ../b -r last:1..last:1 --merge-type blooof',
326
 
                    retcode=3)
327
 
        self.runbzr('merge ../b -r last:1..last:1 --merge-type merge3')
328
 
        self.runbzr('revert --no-backup')
329
 
        self.runbzr('merge ../b -r last:1..last:1 --merge-type weave')
330
 
        self.runbzr('revert --no-backup')
331
 
        self.runbzr('merge ../b -r last:1..last:1 --reprocess')
332
 
        self.runbzr('revert --no-backup')
333
 
        self.runbzr('merge ../b -r last:1')
334
 
        self.check_file_contents('goodbye', 'quux')
335
 
        # Merging a branch pulls its revision into the tree
336
 
        a = WorkingTree.open('.')
337
 
        b = Branch.open('../b')
338
 
        a.branch.repository.get_revision_xml(b.last_revision())
339
 
        self.log('pending merges: %s', a.pending_merges())
340
 
        self.assertEquals(a.pending_merges(),
341
 
                          [b.last_revision()])
342
 
        self.runbzr('commit -m merged')
343
 
        self.runbzr('merge ../b -r last:1')
344
 
        self.assertEqual(a.pending_merges(), [])
345
 
 
346
 
    def test_merge_with_missing_file(self):
347
 
        """Merge handles missing file conflicts"""
348
 
        os.mkdir('a')
349
 
        os.chdir('a')
350
 
        os.mkdir('sub')
351
 
        print >> file('sub/a.txt', 'wb'), "hello"
352
 
        print >> file('b.txt', 'wb'), "hello"
353
 
        print >> file('sub/c.txt', 'wb'), "hello"
354
 
        self.runbzr('init')
355
 
        self.runbzr('add')
356
 
        self.runbzr(('commit', '-m', 'added a'))
357
 
        self.runbzr('branch . ../b')
358
 
        print >> file('sub/a.txt', 'ab'), "there"
359
 
        print >> file('b.txt', 'ab'), "there"
360
 
        print >> file('sub/c.txt', 'ab'), "there"
361
 
        self.runbzr(('commit', '-m', 'Added there'))
362
 
        os.unlink('sub/a.txt')
363
 
        os.unlink('sub/c.txt')
364
 
        os.rmdir('sub')
365
 
        os.unlink('b.txt')
366
 
        self.runbzr(('commit', '-m', 'Removed a.txt'))
367
 
        os.chdir('../b')
368
 
        print >> file('sub/a.txt', 'ab'), "something"
369
 
        print >> file('b.txt', 'ab'), "something"
370
 
        print >> file('sub/c.txt', 'ab'), "something"
371
 
        self.runbzr(('commit', '-m', 'Modified a.txt'))
372
 
        self.runbzr('merge ../a/', retcode=1)
373
 
        self.assert_(os.path.exists('sub/a.txt.THIS'))
374
 
        self.assert_(os.path.exists('sub/a.txt.BASE'))
375
 
        os.chdir('../a')
376
 
        self.runbzr('merge ../b/', retcode=1)
377
 
        self.assert_(os.path.exists('sub/a.txt.OTHER'))
378
 
        self.assert_(os.path.exists('sub/a.txt.BASE'))
379
 
 
380
308
    def test_inventory(self):
381
309
        bzr = self.runbzr
382
310
        def output_equals(value, *args):
562
490
        self.runbzr('pull')
563
491
        self.runbzr('pull ../c')
564
492
        self.runbzr('branch ../c ../d')
565
 
        shutil.rmtree('../c')
 
493
        rmtree('../c')
566
494
        self.runbzr('pull')
567
495
        os.chdir('../b')
568
496
        self.runbzr('pull')
721
649
        assert '|||||||' not in conflict_text
722
650
        assert 'hi world' not in conflict_text
723
651
        self.runbzr('remerge . --merge-type weave --show-base', retcode=3)
724
 
        self.runbzr('remerge . --merge-type weave --reprocess', retcode=3)
725
652
        self.runbzr('remerge . --show-base --reprocess', retcode=3)
 
653
        self.runbzr('remerge . --merge-type weave --reprocess', retcode=1)
726
654
        self.runbzr('remerge hello --show-base', retcode=1)
727
655
        self.runbzr('remerge hello --reprocess', retcode=1)
728
656
        self.runbzr('resolve --all')