20
from bzrlib import bzrdir, repository
20
21
from bzrlib.branch import Branch
21
22
from bzrlib.bzrdir import BzrDir
22
23
from bzrlib.builtins import merge
25
26
from bzrlib.tests.HTTPTestUtil import TestCaseWithWebserver
26
27
from bzrlib.tests.test_revision import make_branches
27
28
from bzrlib.trace import mutter
29
from bzrlib.upgrade import Convert
28
30
from bzrlib.workingtree import WorkingTree
113
115
wt = self.make_branch_and_tree('br')
114
116
self.assertEqual(wt.branch.fetch(wt.branch), (0, []))
118
def test_fetch_root_knit(self):
119
"""Ensure that knit2 updates the root knit
121
This tests the case where the root has been changed
123
knit1 = bzrdir.BzrDirMetaFormat1()
124
knit1.repository_format = repository.RepositoryFormatKnit1()
125
knit2 = bzrdir.BzrDirMetaFormat1()
126
knit2.repository_format = repository.RepositoryFormatKnit2()
127
tree = self.make_branch_and_tree('tree', knit1)
128
tree.set_root_id('tree-root')
129
tree.commit('rev1', rev_id='rev1')
130
tree.commit('rev2', rev_id='rev2')
131
Convert(tree.basedir, knit2)
132
tree = WorkingTree.open(tree.basedir)
133
branch = self.make_branch('branch', format=knit2)
134
branch.pull(tree.branch, stop_revision='rev1')
135
repo = branch.repository
136
root_weave = repo.weave_store.get_weave('tree-root',
137
repo.get_transaction())
138
self.assertTrue('rev1' in root_weave)
139
self.assertTrue('rev2' not in root_weave)
140
branch.pull(tree.branch)
141
root_weave = repo.weave_store.get_weave('tree-root',
142
repo.get_transaction())
143
self.assertTrue('rev2' in root_weave)
117
146
class TestMergeFetch(TestCaseWithTransport):