/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 bzrlib/rename_map.py

  • Committer: Vincent Ladeuil
  • Date: 2012-01-05 14:26:58 UTC
  • mto: This revision was merged to the branch mainline in revision 6468.
  • Revision ID: v.ladeuil+lp@free.fr-20120105142658-vek3v6pzlxb751s2
Tests passing for a first rough version of a cached branch config store. The changes here are too invasive and several parallel proposals have been made. 

@only_raises is evil and gave a hard time since any exception during
save_changes() was swallowed.

Possible improvements: 

- add some needs_write_lock decorators to crucial
  methods (_set_config_location ?) but keep locking the branch at higher levels

- decorate branch.unlock to call stack.save if last_lock() it True
  outside of @only_raises scope (evil decorator)

- add @needs_write_lock to stack.set and stack.remove (will probably get
  rid of most testing issues) we probably need a specialized decorator
  that can relay to the store and from there to the branch or whatever is
  needed. This will also helps bzr config to get it right. The
  get_mutable_section trick should not be needed anymore either.

- decorate branch.unlock to call stack.save if last_lock() it True outside
  of @only_raises scope (evil decorator)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
from __future__ import absolute_import
17
18
 
18
19
from cStringIO import StringIO
19
20
 
23
24
    trace,
24
25
)
25
26
from bzrlib.ui import ui_factory
26
 
 
 
27
from bzrlib.i18n import gettext
27
28
 
28
29
class RenameMap(object):
29
30
    """Determine a mapping of renames."""
65
66
        try:
66
67
            for num, (file_id, contents) in enumerate(
67
68
                tree.iter_files_bytes(desired_files)):
68
 
                task.update('Calculating hashes', num, len(file_ids))
 
69
                task.update(gettext('Calculating hashes'), num, len(file_ids))
69
70
                s = StringIO()
70
71
                s.writelines(contents)
71
72
                s.seek(0)
103
104
        task = ui_factory.nested_progress_bar()
104
105
        try:
105
106
            for num, path in enumerate(paths):
106
 
                task.update('Determining hash hits', num, len(paths))
 
107
                task.update(gettext('Determining hash hits'), num, len(paths))
107
108
                hits = self.hitcounts(self.tree.get_file_lines(None,
108
109
                                                               path=path))
109
110
                all_hits.extend((v, path, k) for k, v in hits.items())
238
239
            pp.next_phase()
239
240
            delta = rn._make_inventory_delta(matches)
240
241
            for old, new, file_id, entry in delta:
241
 
                trace.note("%s => %s", old, new)
 
242
                trace.note( gettext("{0} => {1}").format(old, new) )
242
243
            if not dry_run:
243
244
                tree.add(required_parents)
244
245
                tree.apply_inventory_delta(delta)