/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/foreign.py

  • Committer: Jelmer Vernooij
  • Date: 2017-12-04 23:01:39 UTC
  • mto: This revision was merged to the branch mainline in revision 6839.
  • Revision ID: jelmer@jelmer.uk-20171204230139-1sc3c18ikwewdejm
Remove bytes_to_gzip; work with chunks instead.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2008-2012 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
 
18
17
"""Foreign branch utilities."""
19
18
 
20
 
 
21
 
from bzrlib.branch import (
 
19
from __future__ import absolute_import
 
20
 
 
21
 
 
22
from .branch import (
22
23
    Branch,
23
 
    InterBranch,
24
 
    )
25
 
from bzrlib.commands import Command, Option
26
 
from bzrlib.repository import Repository
27
 
from bzrlib.revision import Revision
28
 
from bzrlib.lazy_import import lazy_import
 
24
    )
 
25
from .commands import Command, Option
 
26
from .repository import Repository
 
27
from .revision import Revision
 
28
from .sixish import (
 
29
    text_type,
 
30
    )
 
31
from .lazy_import import lazy_import
29
32
lazy_import(globals(), """
30
 
from bzrlib import (
 
33
from breezy import (
31
34
    errors,
32
 
    osutils,
33
35
    registry,
34
36
    transform,
35
37
    )
 
38
from breezy.i18n import gettext
36
39
""")
37
40
 
38
41
class VcsMapping(object):
265
268
    branch unless the --no-rebase option is used, in which case 
266
269
    the two branches will be out of sync after the push. 
267
270
    """
268
 
    hidden = True
269
271
    takes_args = ['location?']
270
272
    takes_options = [
271
273
        'remember',
273
275
               help='Branch to push from, '
274
276
               'rather than the one containing the working directory.',
275
277
               short_name='d',
276
 
               type=unicode,
 
278
               type=text_type,
277
279
               ),
278
280
        Option('no-rebase', help="Do not rebase after push."),
279
281
        Option('strict',
283
285
 
284
286
    def run(self, location=None, remember=False, directory=None,
285
287
            no_rebase=False, strict=None):
286
 
        from bzrlib import urlutils
287
 
        from bzrlib.bzrdir import BzrDir
288
 
        from bzrlib.errors import BzrCommandError, NoWorkingTree
289
 
        from bzrlib.workingtree import WorkingTree
 
288
        from breezy import urlutils
 
289
        from breezy.controldir import ControlDir
 
290
        from breezy.errors import BzrCommandError, NoWorkingTree
 
291
        from breezy.workingtree import WorkingTree
290
292
 
291
293
        if directory is None:
292
294
            directory = "."
304
306
        stored_loc = source_branch.get_push_location()
305
307
        if location is None:
306
308
            if stored_loc is None:
307
 
                raise BzrCommandError("No push location known or specified.")
 
309
                raise BzrCommandError(gettext("No push location known or specified."))
308
310
            else:
309
311
                display_url = urlutils.unescape_for_display(stored_loc,
310
312
                        self.outf.encoding)
311
 
                self.outf.write("Using saved location: %s\n" % display_url)
 
313
                self.outf.write(
 
314
                       gettext("Using saved location: %s\n") % display_url)
312
315
                location = stored_loc
313
316
 
314
 
        bzrdir = BzrDir.open(location)
315
 
        target_branch = bzrdir.open_branch()
 
317
        controldir = ControlDir.open(location)
 
318
        target_branch = controldir.open_branch()
316
319
        target_branch.lock_write()
317
320
        try:
318
321
            try:
319
 
                push_result = source_branch.lossy_push(target_branch)
 
322
                push_result = source_branch.push(target_branch, lossy=True)
320
323
            except errors.LossyPushToSameVCS:
321
 
                raise BzrCommandError("%r and %r are in the same VCS, lossy "
322
 
                    "push not necessary. Please use regular push." %
323
 
                    (source_branch, target_branch))
 
324
                raise BzrCommandError(gettext("{0!r} and {1!r} are in the same VCS, lossy "
 
325
                    "push not necessary. Please use regular push.").format(
 
326
                    source_branch, target_branch))
324
327
            # We successfully created the target, remember it
325
328
            if source_branch.get_push_location() is None or remember:
 
329
                # FIXME: Should be done only if we succeed ? -- vila 2012-01-18
326
330
                source_branch.set_push_location(target_branch.base)
327
331
            if not no_rebase:
328
332
                old_last_revid = source_branch.last_revision()
339
343
            push_result.report(self.outf)
340
344
        finally:
341
345
            target_branch.unlock()
342
 
 
343
 
 
344
 
class InterToForeignBranch(InterBranch):
345
 
 
346
 
    def lossy_push(self, stop_revision=None):
347
 
        """Push deltas into another branch.
348
 
 
349
 
        :note: This does not, like push, retain the revision ids from 
350
 
            the source branch and will, rather than adding bzr-specific 
351
 
            metadata, push only those semantics of the revision that can be 
352
 
            natively represented by this branch' VCS.
353
 
 
354
 
        :param target: Target branch
355
 
        :param stop_revision: Revision to push, defaults to last revision.
356
 
        :return: BranchPushResult with an extra member revidmap: 
357
 
            A dictionary mapping revision ids from the target branch 
358
 
            to new revision ids in the target branch, for each 
359
 
            revision that was pushed.
360
 
        """
361
 
        raise NotImplementedError(self.lossy_push)