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
from bzrlib import (
18
18
branch as _mod_branch,
43
44
self.assertRaises(errors.NoWorkingTree, workingtree.WorkingTree.open,
47
def test_tree_with_pending_merge_to_branch(self):
48
tree = self.make_branch_and_tree('tree')
49
tree.commit('unchanged')
50
other_tree = tree.bzrdir.sprout('other').open_workingtree()
51
other_tree.commit('mergeable commit')
52
tree.merge_from_branch(other_tree.branch)
53
reconfiguration = reconfigure.Reconfigure.to_branch(tree.bzrdir)
54
self.assertRaises(errors.UncommittedChanges, reconfiguration.apply)
55
reconfiguration.apply(force=True)
56
self.assertRaises(errors.NoWorkingTree, workingtree.WorkingTree.open,
46
59
def test_branch_to_branch(self):
47
60
branch = self.make_branch('branch')
48
61
self.assertRaises(errors.AlreadyBranch,
377
390
def test_unsynced_branch_to_lightweight_checkout_forced(self):
378
391
reconfiguration = self.make_unsynced_branch_reconfiguration()
379
392
reconfiguration.apply(force=True)
394
def make_repository_with_without_trees(self, with_trees):
395
repo = self.make_repository('repo', shared=True)
396
repo.set_make_working_trees(with_trees)
399
def test_make_with_trees(self):
400
repo = self.make_repository_with_without_trees(False)
401
reconfiguration = reconfigure.Reconfigure.set_repository_trees(
403
reconfiguration.apply()
404
self.assertIs(True, repo.make_working_trees())
406
def test_make_without_trees(self):
407
repo = self.make_repository_with_without_trees(True)
408
reconfiguration = reconfigure.Reconfigure.set_repository_trees(
410
reconfiguration.apply()
411
self.assertIs(False, repo.make_working_trees())
413
def test_make_with_trees_already_with_trees(self):
414
repo = self.make_repository_with_without_trees(True)
415
e = self.assertRaises(errors.AlreadyWithTrees,
416
reconfigure.Reconfigure.set_repository_trees, repo.bzrdir, True)
417
self.assertContainsRe(str(e),
418
r"Shared repository '.*' already creates working trees.")
420
def test_make_without_trees_already_no_trees(self):
421
repo = self.make_repository_with_without_trees(False)
422
e = self.assertRaises(errors.AlreadyWithNoTrees,
423
reconfigure.Reconfigure.set_repository_trees, repo.bzrdir, False)
424
self.assertContainsRe(str(e),
425
r"Shared repository '.*' already doesn't create working trees.")
427
def test_repository_tree_reconfiguration_not_supported(self):
428
tree = self.make_branch_and_tree('tree')
429
e = self.assertRaises(errors.ReconfigurationNotSupported,
430
reconfigure.Reconfigure.set_repository_trees, tree.bzrdir, None)
431
self.assertContainsRe(str(e),
432
r"Requested reconfiguration of '.*' is not supported.")
434
def test_lightweight_checkout_to_tree_preserves_reference_locations(self):
435
format = bzrdir.format_registry.make_bzrdir('1.9')
436
format.set_branch_format(_mod_branch.BzrBranchFormat8())
437
tree = self.make_branch_and_tree('tree', format=format)
438
tree.branch.set_reference_info('file_id', 'path', '../location')
439
checkout = tree.branch.create_checkout('checkout', lightweight=True)
440
reconfiguration = reconfigure.Reconfigure.to_tree(checkout.bzrdir)
441
reconfiguration.apply()
442
checkout_branch = checkout.bzrdir.open_branch()
443
self.assertEqual(('path', '../location'),
444
checkout_branch.get_reference_info('file_id'))