~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transform.py

  • Committer: Patch Queue Manager
  • Date: 2011-10-09 13:52:06 UTC
  • mfrom: (6202.1.3 revno-revision)
  • Revision ID: pqm@pqm.ubuntu.com-20111009135206-t3utsln6mtzv9eut
(jelmer) Add a --revision argument to 'bzr revno'. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
    ui,
43
43
    urlutils,
44
44
    )
 
45
from bzrlib.i18n import gettext
45
46
""")
46
47
from bzrlib.errors import (DuplicateKey, MalformedTransform, NoSuchFile,
47
48
                           ReusingTransform, CantMoveRoot,
231
232
        new_roots = [k for k, v in self._new_parent.iteritems() if v is
232
233
                     ROOT_PARENT]
233
234
        if len(new_roots) < 1:
234
 
            if self.final_kind(self.root) is None:
235
 
                self.cancel_deletion(self.root)
236
 
            if self.final_file_id(self.root) is None:
237
 
                self.version_file(self.tree_file_id(self.root),
238
 
                                     self.root)
239
235
            return
240
236
        if len(new_roots) != 1:
241
237
            raise ValueError('A tree cannot have two roots!')
1731
1727
        child_pb = ui.ui_factory.nested_progress_bar()
1732
1728
        try:
1733
1729
            if precomputed_delta is None:
1734
 
                child_pb.update('Apply phase', 0, 2)
 
1730
                child_pb.update(gettext('Apply phase'), 0, 2)
1735
1731
                inventory_delta = self._generate_inventory_delta()
1736
1732
                offset = 1
1737
1733
            else:
1742
1738
            else:
1743
1739
                mover = _mover
1744
1740
            try:
1745
 
                child_pb.update('Apply phase', 0 + offset, 2 + offset)
 
1741
                child_pb.update(gettext('Apply phase'), 0 + offset, 2 + offset)
1746
1742
                self._apply_removals(mover)
1747
 
                child_pb.update('Apply phase', 1 + offset, 2 + offset)
 
1743
                child_pb.update(gettext('Apply phase'), 1 + offset, 2 + offset)
1748
1744
                modified_paths = self._apply_insertions(mover)
1749
1745
            except:
1750
1746
                mover.rollback()
1753
1749
                mover.apply_deletions()
1754
1750
        finally:
1755
1751
            child_pb.finished()
 
1752
        if self.final_file_id(self.root) is None:
 
1753
            inventory_delta = [e for e in inventory_delta if e[0] != '']
1756
1754
        self._tree.apply_inventory_delta(inventory_delta)
1757
1755
        self._apply_observed_sha1s()
1758
1756
        self._done = True
1768
1766
        try:
1769
1767
            for num, trans_id in enumerate(self._removed_id):
1770
1768
                if (num % 10) == 0:
1771
 
                    child_pb.update('removing file', num, total_entries)
 
1769
                    child_pb.update(gettext('removing file'), num, total_entries)
1772
1770
                if trans_id == self._new_root:
1773
1771
                    file_id = self._tree.get_root_id()
1774
1772
                else:
1786
1784
            final_kinds = {}
1787
1785
            for num, (path, trans_id) in enumerate(new_paths):
1788
1786
                if (num % 10) == 0:
1789
 
                    child_pb.update('adding file',
 
1787
                    child_pb.update(gettext('adding file'),
1790
1788
                                    num + len(self._removed_id), total_entries)
1791
1789
                file_id = new_path_file_ids[trans_id]
1792
1790
                if file_id is None:
1836
1834
                # do not attempt to move root into a subdirectory of itself.
1837
1835
                if path == '':
1838
1836
                    continue
1839
 
                child_pb.update('removing file', num, len(tree_paths))
 
1837
                child_pb.update(gettext('removing file'), num, len(tree_paths))
1840
1838
                full_path = self._tree.abspath(path)
1841
1839
                if trans_id in self._removed_contents:
1842
1840
                    delete_path = os.path.join(self._deletiondir, trans_id)
1871
1869
        try:
1872
1870
            for num, (path, trans_id) in enumerate(new_paths):
1873
1871
                if (num % 10) == 0:
1874
 
                    child_pb.update('adding file', num, len(new_paths))
 
1872
                    child_pb.update(gettext('adding file'), num, len(new_paths))
1875
1873
                full_path = self._tree.abspath(path)
1876
1874
                if trans_id in self._needs_rename:
1877
1875
                    try:
2261
2259
        else:
2262
2260
            return None
2263
2261
 
 
2262
    def get_file_verifier(self, file_id, path=None, stat_value=None):
 
2263
        trans_id = self._transform.trans_id_file_id(file_id)
 
2264
        kind = self._transform._new_contents.get(trans_id)
 
2265
        if kind is None:
 
2266
            return self._transform._tree.get_file_verifier(file_id)
 
2267
        if kind == 'file':
 
2268
            fileobj = self.get_file(file_id)
 
2269
            try:
 
2270
                return ("SHA1", sha_file(fileobj))
 
2271
            finally:
 
2272
                fileobj.close()
 
2273
 
2264
2274
    def get_file_sha1(self, file_id, path=None, stat_value=None):
2265
2275
        trans_id = self._transform.trans_id_file_id(file_id)
2266
2276
        kind = self._transform._new_contents.get(trans_id)
2574
2584
                    existing_files.update(f[0] for f in files)
2575
2585
            for num, (tree_path, entry) in \
2576
2586
                enumerate(tree.inventory.iter_entries_by_dir()):
2577
 
                pb.update("Building tree", num - len(deferred_contents), total)
 
2587
                pb.update(gettext("Building tree"), num - len(deferred_contents), total)
2578
2588
                if entry.parent_id is None:
2579
2589
                    continue
2580
2590
                reparent = False
2664
2674
                new_desired_files.append((file_id,
2665
2675
                    (trans_id, tree_path, text_sha1)))
2666
2676
                continue
2667
 
            pb.update('Adding file contents', count + offset, total)
 
2677
            pb.update(gettext('Adding file contents'), count + offset, total)
2668
2678
            if hardlink:
2669
2679
                tt.create_hardlink(accelerator_tree.abspath(accelerator_path),
2670
2680
                                   trans_id)
2691
2701
            contents = filtered_output_bytes(contents, filters,
2692
2702
                ContentFilterContext(tree_path, tree))
2693
2703
        tt.create_file(contents, trans_id, sha1=text_sha1)
2694
 
        pb.update('Adding file contents', count + offset, total)
 
2704
        pb.update(gettext('Adding file contents'), count + offset, total)
2695
2705
 
2696
2706
 
2697
2707
def _reparent_children(tt, old_parent, new_parent):
3038
3048
    pb = ui.ui_factory.nested_progress_bar()
3039
3049
    try:
3040
3050
        for n in range(10):
3041
 
            pb.update('Resolution pass', n+1, 10)
 
3051
            pb.update(gettext('Resolution pass'), n+1, 10)
3042
3052
            conflicts = tt.find_conflicts()
3043
3053
            if len(conflicts) == 0:
3044
3054
                return new_conflicts