~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/diff.py

(gz) Remove bzrlib/util/elementtree/ package (Martin Packman)

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
 
18
 
17
19
import difflib
18
20
import os
19
21
import re
27
29
import tempfile
28
30
 
29
31
from bzrlib import (
30
 
    bzrdir,
 
32
    cleanup,
31
33
    cmdline,
32
 
    cleanup,
 
34
    controldir,
33
35
    errors,
34
36
    osutils,
35
37
    patiencediff,
39
41
    )
40
42
 
41
43
from bzrlib.workingtree import WorkingTree
 
44
from bzrlib.i18n import gettext
42
45
""")
43
46
 
44
47
from bzrlib.registry import (
45
48
    Registry,
46
49
    )
47
 
from bzrlib.symbol_versioning import (
48
 
    deprecated_function,
49
 
    deprecated_in,
50
 
    )
51
50
from bzrlib.trace import mutter, note, warning
52
51
 
53
52
 
288
287
                        new_abspath, e)
289
288
 
290
289
 
291
 
@deprecated_function(deprecated_in((2, 2, 0)))
292
 
def get_trees_and_branches_to_diff(path_list, revision_specs, old_url, new_url,
293
 
                                   apply_view=True):
294
 
    """Get the trees and specific files to diff given a list of paths.
295
 
 
296
 
    This method works out the trees to be diff'ed and the files of
297
 
    interest within those trees.
298
 
 
299
 
    :param path_list:
300
 
        the list of arguments passed to the diff command
301
 
    :param revision_specs:
302
 
        Zero, one or two RevisionSpecs from the diff command line,
303
 
        saying what revisions to compare.
304
 
    :param old_url:
305
 
        The url of the old branch or tree. If None, the tree to use is
306
 
        taken from the first path, if any, or the current working tree.
307
 
    :param new_url:
308
 
        The url of the new branch or tree. If None, the tree to use is
309
 
        taken from the first path, if any, or the current working tree.
310
 
    :param apply_view:
311
 
        if True and a view is set, apply the view or check that the paths
312
 
        are within it
313
 
    :returns:
314
 
        a tuple of (old_tree, new_tree, old_branch, new_branch,
315
 
        specific_files, extra_trees) where extra_trees is a sequence of
316
 
        additional trees to search in for file-ids.  The trees and branches
317
 
        are not locked.
318
 
    """
319
 
    op = cleanup.OperationWithCleanups(get_trees_and_branches_to_diff_locked)
320
 
    return op.run_simple(path_list, revision_specs, old_url, new_url,
321
 
            op.add_cleanup, apply_view=apply_view)
322
 
    
323
 
 
324
290
def get_trees_and_branches_to_diff_locked(
325
291
    path_list, revision_specs, old_url, new_url, add_cleanup, apply_view=True):
326
292
    """Get the trees and specific files to diff given a list of paths.
392
358
    if old_url is None:
393
359
        old_url = default_location
394
360
    working_tree, branch, relpath = \
395
 
        bzrdir.BzrDir.open_containing_tree_or_branch(old_url)
 
361
        controldir.ControlDir.open_containing_tree_or_branch(old_url)
396
362
    lock_tree_or_branch(working_tree, branch)
397
363
    if consider_relpath and relpath != '':
398
364
        if working_tree is not None and apply_view:
406
372
        new_url = default_location
407
373
    if new_url != old_url:
408
374
        working_tree, branch, relpath = \
409
 
            bzrdir.BzrDir.open_containing_tree_or_branch(new_url)
 
375
            controldir.ControlDir.open_containing_tree_or_branch(new_url)
410
376
        lock_tree_or_branch(working_tree, branch)
411
377
        if consider_relpath and relpath != '':
412
378
            if working_tree is not None and apply_view:
430
396
            if view_files:
431
397
                specific_files = view_files
432
398
                view_str = views.view_display_str(view_files)
433
 
                note("*** Ignoring files outside view. View is %s" % view_str)
 
399
                note(gettext("*** Ignoring files outside view. View is %s") % view_str)
434
400
 
435
401
    # Get extra trees that ought to be searched for file-ids
436
402
    extra_trees = None
437
403
    if working_tree is not None and working_tree not in (old_tree, new_tree):
438
404
        extra_trees = (working_tree,)
439
 
    return old_tree, new_tree, old_branch, new_branch, specific_files, extra_trees
 
405
    return (old_tree, new_tree, old_branch, new_branch,
 
406
            specific_files, extra_trees)
440
407
 
441
408
 
442
409
def _get_tree_to_diff(spec, tree=None, branch=None, basis_is_default=True):