~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/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
# Author: Aaron Bentley <aaron.bentley@utoronto.ca>
18
18
 
108
108
        self.assertTrue("Not a branch" in err)
109
109
        self.run_bzr('merge -r revno:%d:./..revno:%d:../b'
110
110
                    %(ancestor,b.revno()))
111
 
        self.assertEquals(a.get_parent_ids(), 
 
111
        self.assertEquals(a.get_parent_ids(),
112
112
                          [a.branch.last_revision(), b.last_revision()])
113
113
        self.check_file_contents('goodbye', 'quux')
114
114
        a_tree.revert(backups=False)
236
236
        out = self.run_bzr('merge', retcode=3)
237
237
        self.assertEquals(out,
238
238
                ('','bzr: ERROR: No location specified or remembered\n'))
239
 
        # test implicit --remember when no parent set, this merge conflicts
 
239
 
 
240
        # test uncommitted changes
240
241
        self.build_tree(['d'])
241
242
        tree_b.add('d')
242
243
        self.run_bzr_error(['Working tree ".*" has uncommitted changes'],
243
 
                           'merge ../branch_a')
244
 
        self.assertEquals(abspath(branch_b.get_submit_branch()),
245
 
                          abspath(parent))
246
 
        # test implicit --remember after resolving conflict
 
244
                           'merge')
 
245
 
 
246
        # merge should now pass and implicitly remember merge location
247
247
        tree_b.commit('commit d')
 
248
        out, err = self.run_bzr('merge ../branch_a')
 
249
 
 
250
        base = urlutils.local_path_from_url(branch_a.base)
 
251
        self.assertEndsWith(err, '+N  b\nAll changes applied successfully.\n')
 
252
        self.assertEquals(abspath(branch_b.get_submit_branch()),
 
253
                          abspath(parent))
 
254
        # test implicit --remember when committing new file
 
255
        self.build_tree(['e'])
 
256
        tree_b.add('e')
 
257
        tree_b.commit('commit e')
248
258
        out, err = self.run_bzr('merge')
249
 
        
250
 
        base = urlutils.local_path_from_url(branch_a.base)
251
259
        self.assertStartsWith(err,
252
260
                          'Merging from remembered submit location %s\n' % (base,))
253
 
        self.assertEndsWith(err, '+N  b\nAll changes applied successfully.\n')
254
 
        self.assertEquals(abspath(branch_b.get_submit_branch()),
255
 
                          abspath(parent))
256
261
        # re-open tree as external run_bzr modified it
257
262
        tree_b = branch_b.bzrdir.open_workingtree()
258
263
        tree_b.commit('merge branch_a')
438
443
 
439
444
    def assertDirectoryContent(self, directory, entries, message=''):
440
445
        """Assert whether entries (file or directories) exist in a directory.
441
 
        
 
446
 
442
447
        It also checks that there are no extra entries.
443
448
        """
444
449
        ondisk = os.listdir(directory)
486
491
        out, err = self.run_bzr(['merge', '-d', 'a', 'b'])
487
492
        self.assertContainsRe(err, 'Warning: criss-cross merge encountered.')
488
493
 
 
494
    def test_merge_force(self):
 
495
        tree_a = self.make_branch_and_tree('a')
 
496
        self.build_tree(['a/foo'])
 
497
        tree_a.add(['foo'])
 
498
        tree_a.commit('add file')
 
499
        tree_b = tree_a.bzrdir.sprout('b').open_workingtree()
 
500
        self.build_tree_contents([('a/foo', 'change 1')])
 
501
        tree_a.commit('change file')
 
502
        tree_b.merge_from_branch(tree_a.branch)
 
503
        tree_a.commit('empty change to allow merge to run')
 
504
        self.run_bzr(['merge', '../a', '--force'], working_dir='b')
 
505
 
489
506
    def test_merge_from_submit(self):
490
507
        tree_a = self.make_branch_and_tree('a')
491
508
        tree_b = tree_a.bzrdir.sprout('b').open_workingtree()