64
65
self.runbzr('commit -m add-file checkout')
65
66
# now branch should be out of date
66
67
out,err = self.runbzr('update branch')
67
self.assertEqual('Updated to revision 1.\n', out)
68
self.assertEqual('', err)
68
self.assertEqual('', out)
69
self.assertEqual('All changes applied successfully.\n'
70
'Updated to revision 1.\n', err)
69
71
self.failUnlessExists('branch/file')
71
73
def test_update_out_of_date_light_checkout(self):
137
139
# now, update checkout ->
138
140
# get all three files and a pending merge.
139
self.run_bzr('update', 'checkout')
141
out, err = self.run_bzr('update', 'checkout')
142
self.assertEqual('', out)
143
self.assertContainsRe(err, 'Updated to revision 1.\n'
144
'Your local commits will now show as'
140
146
wt = WorkingTree.open('checkout')
141
147
self.assertNotEqual([], wt.pending_merges())
142
148
self.failUnlessExists('checkout/file')
143
149
self.failUnlessExists('checkout/file_b')
144
150
self.failUnlessExists('checkout/file_c')
145
151
self.assertTrue(wt.has_filename('file_c'))
153
def test_update_with_merges(self):
154
# Test that 'bzr update' works correctly when you have
155
# an update in the master tree, and a lightweight checkout
156
# which has merged another branch
157
master = self.make_branch_and_tree('master')
158
self.build_tree(['master/file'])
160
master.commit('one', rev_id='m1')
162
self.build_tree(['checkout1/'])
163
checkout_dir = bzrdir.BzrDirMetaFormat1().initialize('checkout1')
164
branch.BranchReferenceFormat().initialize(checkout_dir, master.branch)
165
checkout1 = checkout_dir.create_workingtree('m1')
167
# Create a second branch, with an extra commit
168
other = master.bzrdir.sprout('other').open_workingtree()
169
self.build_tree(['other/file2'])
171
other.commit('other2', rev_id='o2')
173
# Create a new commit in the master branch
174
self.build_tree(['master/file3'])
175
master.add(['file3'])
176
master.commit('f3', rev_id='m2')
178
# Merge the other branch into checkout
179
os.chdir('checkout1')
180
self.run_bzr('merge', '../other')
182
self.assertEqual(['o2'], checkout1.pending_merges())
184
# At this point, 'commit' should fail, because we are out of date
185
self.run_bzr_error(["please run 'bzr update'"],
186
'commit', '-m', 'merged')
188
# This should not report about local commits being pending
189
# merges, because they were real merges
190
out, err = self.run_bzr('update')
191
self.assertEqual('', out)
192
self.assertEqual('All changes applied successfully.\n'
193
'Updated to revision 2.\n', err)
195
# The pending merges should still be there
196
self.assertEqual(['o2'], checkout1.pending_merges())