~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/diff.py

[merge] update from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
164
164
        else:
165
165
            old_tree = b.working_tree()
166
166
    else:
167
 
        old_tree = b.revision_tree(from_spec.in_history(b).rev_id)
 
167
        old_tree = b.repository.revision_tree(from_spec.in_history(b).rev_id)
168
168
 
169
169
    if revision2 is None:
170
170
        if b2 is None:
172
172
        else:
173
173
            new_tree = b2.working_tree()
174
174
    else:
175
 
        new_tree = b.revision_tree(revision2.in_history(b).rev_id)
 
175
        new_tree = b.repository.revision_tree(revision2.in_history(b).rev_id)
176
176
 
177
177
    return show_diff_trees(old_tree, new_tree, output, specific_files,
178
178
                           external_diff_options)
190
190
        If set, use an external GNU diff and pass these options.
191
191
    """
192
192
 
 
193
    old_tree.lock_read()
 
194
    try:
 
195
        new_tree.lock_read()
 
196
        try:
 
197
            return _show_diff_trees(old_tree, new_tree, to_file,
 
198
                                    specific_files, external_diff_options)
 
199
        finally:
 
200
            new_tree.unlock()
 
201
    finally:
 
202
        old_tree.unlock()
 
203
 
 
204
 
 
205
def _show_diff_trees(old_tree, new_tree, to_file,
 
206
                     specific_files, external_diff_options):
 
207
 
193
208
    # TODO: Options to control putting on a prefix or suffix, perhaps as a format string
194
209
    old_label = ''
195
210
    new_label = ''