~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/foreign.py

  • Committer: Jelmer Vernooij
  • Date: 2011-04-09 22:14:24 UTC
  • mfrom: (5777.4.2 mutableinventorytree)
  • mto: This revision was merged to the branch mainline in revision 5787.
  • Revision ID: jelmer@samba.org-20110409221424-a2air35exbz50hi8
Mergemutableinventorytree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
from bzrlib.branch import (
22
22
    Branch,
 
23
    InterBranch,
23
24
    )
24
25
from bzrlib.commands import Command, Option
25
26
from bzrlib.repository import Repository
31
32
    registry,
32
33
    transform,
33
34
    )
34
 
from bzrlib.i18n import gettext
35
35
""")
36
36
 
37
37
class VcsMapping(object):
283
283
    def run(self, location=None, remember=False, directory=None,
284
284
            no_rebase=False, strict=None):
285
285
        from bzrlib import urlutils
286
 
        from bzrlib.controldir import ControlDir
 
286
        from bzrlib.bzrdir import BzrDir
287
287
        from bzrlib.errors import BzrCommandError, NoWorkingTree
288
288
        from bzrlib.workingtree import WorkingTree
289
289
 
303
303
        stored_loc = source_branch.get_push_location()
304
304
        if location is None:
305
305
            if stored_loc is None:
306
 
                raise BzrCommandError(gettext("No push location known or specified."))
 
306
                raise BzrCommandError("No push location known or specified.")
307
307
            else:
308
308
                display_url = urlutils.unescape_for_display(stored_loc,
309
309
                        self.outf.encoding)
310
 
                self.outf.write(
311
 
                       gettext("Using saved location: %s\n") % display_url)
 
310
                self.outf.write("Using saved location: %s\n" % display_url)
312
311
                location = stored_loc
313
312
 
314
 
        controldir = ControlDir.open(location)
315
 
        target_branch = controldir.open_branch()
 
313
        bzrdir = BzrDir.open(location)
 
314
        target_branch = bzrdir.open_branch()
316
315
        target_branch.lock_write()
317
316
        try:
318
317
            try:
319
 
                push_result = source_branch.push(target_branch, lossy=True)
 
318
                push_result = source_branch.lossy_push(target_branch)
320
319
            except errors.LossyPushToSameVCS:
321
 
                raise BzrCommandError(gettext("{0!r} and {1!r} are in the same VCS, lossy "
322
 
                    "push not necessary. Please use regular push.").format(
323
 
                    source_branch, target_branch))
 
320
                raise BzrCommandError("%r and %r are in the same VCS, lossy "
 
321
                    "push not necessary. Please use regular push." %
 
322
                    (source_branch, target_branch))
324
323
            # We successfully created the target, remember it
325
324
            if source_branch.get_push_location() is None or remember:
326
325
                source_branch.set_push_location(target_branch.base)
339
338
            push_result.report(self.outf)
340
339
        finally:
341
340
            target_branch.unlock()
 
341
 
 
342
 
 
343
class InterToForeignBranch(InterBranch):
 
344
 
 
345
    def lossy_push(self, stop_revision=None):
 
346
        """Push deltas into another branch.
 
347
 
 
348
        :note: This does not, like push, retain the revision ids from 
 
349
            the source branch and will, rather than adding bzr-specific 
 
350
            metadata, push only those semantics of the revision that can be 
 
351
            natively represented by this branch' VCS.
 
352
 
 
353
        :param target: Target branch
 
354
        :param stop_revision: Revision to push, defaults to last revision.
 
355
        :return: BranchPushResult with an extra member revidmap: 
 
356
            A dictionary mapping revision ids from the target branch 
 
357
            to new revision ids in the target branch, for each 
 
358
            revision that was pushed.
 
359
        """
 
360
        raise NotImplementedError(self.lossy_push)