~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-09-17 21:19:56 UTC
  • mfrom: (1997.1.6 bind-does-not-push-or-pull)
  • Revision ID: pqm@pqm.ubuntu.com-20060917211956-6e30d07da410fd1a
(Robert Collins) Change the Branch bind method to just bind rather than binding and pushing (fixes #43744 and #39542)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2005 by Canonical Ltd
2
2
# -*- coding: utf-8 -*-
3
 
 
 
3
#
4
4
# This program is free software; you can redistribute it and/or modify
5
5
# it under the terms of the GNU General Public License as published by
6
6
# the Free Software Foundation; either version 2 of the License, or
7
7
# (at your option) any later version.
8
 
 
 
8
#
9
9
# This program is distributed in the hope that it will be useful,
10
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
12
# GNU General Public License for more details.
13
 
 
 
13
#
14
14
# You should have received a copy of the GNU General Public License
15
15
# along with this program; if not, write to the Free Software
16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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.get_parent_ids()[0])
 
297
        testament_b = Testament.from_revision(tree_b.branch.repository,
 
298
                                              tree_b.get_parent_ids()[0])
 
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])