/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/plugins/weave_fmt/bzrdir.py

  • Committer: Jelmer Vernooij
  • Date: 2019-06-03 23:48:08 UTC
  • mfrom: (7316 work)
  • mto: This revision was merged to the branch mainline in revision 7328.
  • Revision ID: jelmer@jelmer.uk-20190603234808-15yk5c7054tj8e2b
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from __future__ import absolute_import
20
20
 
21
 
from io import BytesIO
22
 
 
23
21
from ...bzr.bzrdir import (
24
22
    BzrDir,
25
23
    BzrDirFormat,
313
311
    def _convert_working_inv(self):
314
312
        inv = xml4.serializer_v4.read_inventory(
315
313
            self.branch._transport.get('inventory'))
316
 
        f = BytesIO()
317
 
        xml5.serializer_v5.write_inventory(inv, f, working=True)
318
 
        self.branch._transport.put_bytes('inventory', f.getvalue(),
 
314
        new_inv_xml = xml5.serializer_v5.write_inventory_to_string(
 
315
            inv, working=True)
 
316
        self.branch._transport.put_bytes('inventory', new_inv_xml,
319
317
                                         mode=self.controldir._get_file_mode())
320
318
 
321
319
    def _write_all_weaves(self):
354
352
            for i, rev_id in enumerate(self.converted_revs):
355
353
                self.pb.update(gettext('write revision'), i,
356
354
                               len(self.converted_revs))
357
 
                lines = serializer_v5.write_revision_to_lines(
 
355
                text = serializer_v5.write_revision_to_string(
358
356
                    self.revisions[rev_id])
359
357
                key = (rev_id,)
360
 
                revision_store.add_lines(key, None, lines)
 
358
                revision_store.add_lines(key, None, osutils.split_lines(text))
361
359
        finally:
362
360
            self.pb.clear()
363
361
 
383
381
            self.revisions[rev_id] = rev
384
382
 
385
383
    def _load_old_inventory(self, rev_id):
386
 
        with self.branch.repository.inventory_store.get(rev_id) as f:
387
 
            inv = xml4.serializer_v4.read_inventory(f)
 
384
        f = self.branch.repository.inventory_store.get(rev_id)
 
385
        try:
 
386
            old_inv_xml = f.read()
 
387
        finally:
 
388
            f.close()
 
389
        inv = xml4.serializer_v4.read_inventory_from_string(old_inv_xml)
388
390
        inv.revision_id = rev_id
389
391
        rev = self.revisions[rev_id]
390
392
        return inv
391
393
 
392
394
    def _load_updated_inventory(self, rev_id):
393
 
        inv_xml = self.inv_weave.get_lines(rev_id)
394
 
        inv = xml5.serializer_v5.read_inventory_from_lines(inv_xml, rev_id)
 
395
        inv_xml = self.inv_weave.get_text(rev_id)
 
396
        inv = xml5.serializer_v5.read_inventory_from_string(inv_xml, rev_id)
395
397
        return inv
396
398
 
397
399
    def _convert_one_rev(self, rev_id):
405
407
        self.converted_revs.add(rev_id)
406
408
 
407
409
    def _store_new_inv(self, rev, inv, present_parents):
408
 
        new_inv_xml = xml5.serializer_v5.write_inventory_to_lines(inv)
409
 
        new_inv_sha1 = osutils.sha_strings(new_inv_xml)
 
410
        new_inv_xml = xml5.serializer_v5.write_inventory_to_string(inv)
 
411
        new_inv_sha1 = osutils.sha_string(new_inv_xml)
410
412
        self.inv_weave.add_lines(rev.revision_id,
411
413
                                 present_parents,
412
 
                                 new_inv_xml)
 
414
                                 new_inv_xml.splitlines(True))
413
415
        rev.inventory_sha1 = new_inv_sha1
414
416
 
415
417
    def _convert_revision_contents(self, rev, inv, present_parents):
465
467
                ie.revision = previous_ie.revision
466
468
                return
467
469
        if ie.has_text():
468
 
            with self.branch.repository._text_store.get(ie.text_id) as f:
 
470
            f = self.branch.repository._text_store.get(ie.text_id)
 
471
            try:
469
472
                file_lines = f.readlines()
 
473
            finally:
 
474
                f.close()
470
475
            w.add_lines(rev_id, previous_revisions, file_lines)
471
476
            self.text_count += 1
472
477
        else:
747
752
        return self._format.__class__()
748
753
 
749
754
    def clone(self, url, revision_id=None, force_new_repo=False,
750
 
              preserve_stacking=False, tag_selector=None):
 
755
              preserve_stacking=False):
751
756
        """See ControlDir.clone().
752
757
 
753
758
        force_new_repo has no effect, since this family of formats always
759
764
        result = self._format._initialize_for_clone(url)
760
765
        self.open_repository().clone(result, revision_id=revision_id)
761
766
        from_branch = self.open_branch()
762
 
        from_branch.clone(result, revision_id=revision_id, tag_selector=tag_selector)
 
767
        from_branch.clone(result, revision_id=revision_id)
763
768
        try:
764
769
            tree = self.open_workingtree()
765
770
        except errors.NotLocalUrl:
842
847
 
843
848
    def get_branch_transport(self, branch_format, name=None):
844
849
        """See BzrDir.get_branch_transport()."""
845
 
        if name:
 
850
        if name is not None:
846
851
            raise errors.NoColocatedBranchSupport(self)
847
852
        if branch_format is None:
848
853
            return self.transport
888
893
                           possible_transports=possible_transports)
889
894
 
890
895
    def sprout(self, url, revision_id=None, force_new_repo=False,
891
 
               recurse=None, possible_transports=None, accelerator_tree=None,
 
896
               possible_transports=None, accelerator_tree=None,
892
897
               hardlink=False, stacked=False, create_tree_if_local=True,
893
898
               source_branch=None):
894
899
        """See ControlDir.sprout()."""