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
17
17
# Author: Aaron Bentley <aaron.bentley@utoronto.ca>
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
240
# test uncommitted changes
240
241
self.build_tree(['d'])
242
243
self.run_bzr_error(['Working tree ".*" has uncommitted changes'],
244
self.assertEquals(abspath(branch_b.get_submit_branch()),
246
# test implicit --remember after resolving conflict
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')
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()),
254
# test implicit --remember when committing new file
255
self.build_tree(['e'])
257
tree_b.commit('commit e')
248
258
out, err = self.run_bzr('merge')
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()),
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')
439
444
def assertDirectoryContent(self, directory, entries, message=''):
440
445
"""Assert whether entries (file or directories) exist in a directory.
442
447
It also checks that there are no extra entries.
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.')
494
def test_merge_force(self):
495
tree_a = self.make_branch_and_tree('a')
496
self.build_tree(['a/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')
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()