~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_pull.py

  • Committer: Robert Collins
  • Date: 2006-08-08 23:19:29 UTC
  • mfrom: (1884 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1912.
  • Revision ID: robertc@robertcollins.net-20060808231929-4e3e298190214b3a
current status

Show diffs side-by-side

added added

removed removed

Lines of Context:
247
247
        tree_b.commit('commit d')
248
248
        out = self.runbzr('pull ../branch_a', retcode=3)
249
249
        self.assertEquals(out,
250
 
                ('','bzr: ERROR: These branches have diverged.  Try merge.\n'))
 
250
                ('','bzr: ERROR: These branches have diverged.  Use the merge command to reconcile them.\n'))
251
251
        self.assertEquals(branch_b.get_parent(), parent)
252
252
        # test implicit --remember after resolving previous failure
253
253
        uncommit(branch=branch_b, tree=tree_b)
258
258
        self.runbzr('pull ../branch_c --remember')
259
259
        self.assertEquals(branch_b.get_parent(),
260
260
                          branch_c.bzrdir.root_transport.base)
 
261
 
 
262
    def test_pull_bundle(self):
 
263
        from bzrlib.testament import Testament
 
264
        # Build up 2 trees and prepare for a pull
 
265
        tree_a = self.make_branch_and_tree('branch_a')
 
266
        f = open('branch_a/a', 'wb')
 
267
        f.write('hello')
 
268
        f.close()
 
269
        tree_a.add('a')
 
270
        tree_a.commit('message')
 
271
 
 
272
        tree_b = tree_a.bzrdir.sprout('branch_b').open_workingtree()
 
273
 
 
274
        # Make a change to 'a' that 'b' can pull
 
275
        f = open('branch_a/a', 'wb')
 
276
        f.write('hey there')
 
277
        f.close()
 
278
        tree_a.commit('message')
 
279
 
 
280
        # Create the bundle for 'b' to pull
 
281
        os.chdir('branch_a')
 
282
        bundle_file = open('../bundle', 'wb')
 
283
        bundle_file.write(self.run_bzr('bundle', '../branch_b')[0])
 
284
        bundle_file.close()
 
285
 
 
286
        os.chdir('../branch_b')
 
287
        output = self.run_bzr('pull', '../bundle')
 
288
        self.assertEqual('', output[0])
 
289
        self.assertEqual('All changes applied successfully.\n'
 
290
                         '1 revision(s) pulled.\n', output[1])
 
291
 
 
292
        self.assertEqualDiff(tree_a.branch.revision_history(),
 
293
                             tree_b.branch.revision_history())
 
294
 
 
295
        testament_a = Testament.from_revision(tree_a.branch.repository, 
 
296
                                              tree_a.last_revision())
 
297
        testament_b = Testament.from_revision(tree_b.branch.repository,
 
298
                                              tree_b.last_revision())
 
299
        self.assertEqualDiff(testament_a.as_text(),
 
300
                             testament_b.as_text())
 
301
 
 
302
        # it is legal to attempt to pull an already-merged bundle
 
303
        output = self.run_bzr('pull', '../bundle')
 
304
        self.assertEqual('', output[0])
 
305
        self.assertEqual('0 revision(s) pulled.\n', output[1])