~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
import bzrlib.branch
28
28
from bzrlib.branch import Branch
29
29
import bzrlib.bzrdir as bzrdir
 
30
from bzrlib.bundle import read_bundle_from_url
30
31
from bzrlib.bundle.read_bundle import BundleReader
31
 
from bzrlib.bundle.apply_bundle import merge_bundle
 
32
from bzrlib.bundle.apply_bundle import install_bundle, merge_bundle
32
33
from bzrlib.commands import Command, display_command
33
34
import bzrlib.errors as errors
34
35
from bzrlib.errors import (BzrError, BzrCheckError, BzrCommandError, 
132
133
    modified
133
134
        Text has changed since the previous revision.
134
135
 
135
 
    unchanged
136
 
        Nothing about this file has changed since the previous revision.
137
 
        Only shown with --all.
138
 
 
139
136
    unknown
140
137
        Not versioned and not matching an ignore pattern.
141
138
 
154
151
    # TODO: --no-recurse, --recurse options
155
152
    
156
153
    takes_args = ['file*']
157
 
    takes_options = ['all', 'show-ids', 'revision']
 
154
    takes_options = ['show-ids', 'revision']
158
155
    aliases = ['st', 'stat']
159
156
 
160
157
    encoding_type = 'replace'
161
158
    
162
159
    @display_command
163
 
    def run(self, all=False, show_ids=False, file_list=None, revision=None):
 
160
    def run(self, show_ids=False, file_list=None, revision=None):
164
161
        from bzrlib.status import show_tree_status
165
162
 
166
163
        tree, file_list = tree_files(file_list)
167
164
            
168
 
        show_tree_status(tree, show_unchanged=all, show_ids=show_ids,
 
165
        show_tree_status(tree, show_ids=show_ids,
169
166
                         specific_files=file_list, revision=revision,
170
167
                         to_file=self.outf)
171
168
 
434
431
        except NoWorkingTree:
435
432
            tree_to = None
436
433
            branch_to = Branch.open_containing(u'.')[0]
 
434
 
 
435
        reader = None
 
436
        if location is not None:
 
437
            try:
 
438
                reader = read_bundle_from_url(location)
 
439
            except NotABundle:
 
440
                pass # Continue on considering this url a Branch
 
441
 
437
442
        stored_loc = branch_to.get_parent()
438
443
        if location is None:
439
444
            if stored_loc is None:
444
449
                self.outf.write("Using saved location: %s\n" % display_url)
445
450
                location = stored_loc
446
451
 
447
 
        branch_from = Branch.open(location)
448
 
 
449
 
        if branch_to.get_parent() is None or remember:
450
 
            branch_to.set_parent(branch_from.base)
451
 
 
 
452
 
 
453
        if reader is not None:
 
454
            install_bundle(branch_to.repository, reader)
 
455
            branch_from = branch_to
 
456
        else:
 
457
            branch_from = Branch.open(location)
 
458
 
 
459
            if branch_to.get_parent() is None or remember:
 
460
                branch_to.set_parent(branch_from.base)
 
461
 
 
462
        rev_id = None
452
463
        if revision is None:
453
 
            rev_id = None
 
464
            if reader is not None:
 
465
                rev_id = reader.info.target
454
466
        elif len(revision) == 1:
455
467
            rev_id = revision[0].in_history(branch_from).rev_id
456
468
        else:
2052
2064
 
2053
2065
        tree = WorkingTree.open_containing(u'.')[0]
2054
2066
 
2055
 
        try:
2056
 
            if branch is not None:
2057
 
                reader = BundleReader(file(branch, 'rb'))
2058
 
            else:
2059
 
                reader = None
2060
 
        except IOError, e:
2061
 
            if e.errno not in (errno.ENOENT, errno.EISDIR):
2062
 
                raise
2063
 
            reader = None
2064
 
        except NotABundle:
2065
 
            reader = None
2066
 
        if reader is not None:
2067
 
            conflicts = merge_bundle(reader, tree, not force, merge_type,
2068
 
                                        reprocess, show_base)
2069
 
            if conflicts == 0:
2070
 
                return 0
2071
 
            else:
2072
 
                return 1
 
2067
        if branch is not None:
 
2068
            try:
 
2069
                reader = read_bundle_from_url(branch)
 
2070
            except NotABundle:
 
2071
                pass # Continue on considering this url a Branch
 
2072
            else:
 
2073
                conflicts = merge_bundle(reader, tree, not force, merge_type,
 
2074
                                            reprocess, show_base)
 
2075
                if conflicts == 0:
 
2076
                    return 0
 
2077
                else:
 
2078
                    return 1
2073
2079
 
2074
2080
        branch = self._get_remembered_parent(tree, branch, 'Merging from')
2075
2081