~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/merge_directive.py

(jelmer) Only make a single connection to the submit branch in 'bzr send'.
 (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
82
82
    multiple_output_files = False
83
83
 
84
84
    def __init__(self, revision_id, testament_sha1, time, timezone,
85
 
                 target_branch, patch=None, source_branch=None, message=None,
86
 
                 bundle=None):
 
85
                 target_branch, patch=None, source_branch=None,
 
86
                 message=None, bundle=None):
87
87
        """Constructor.
88
88
 
89
89
        :param revision_id: The revision to merge
91
91
            merge.
92
92
        :param time: The current POSIX timestamp time
93
93
        :param timezone: The timezone offset
94
 
        :param target_branch: The branch to apply the merge to
 
94
        :param target_branch: Location of branch to apply the merge to
95
95
        :param patch: The text of a diff or bundle
96
96
        :param source_branch: A public location to merge the revision from
97
97
        :param message: The message to use when committing this merge
165
165
        :param target_branch: The url of the branch to merge into
166
166
        :param patch_type: 'bundle', 'diff' or None, depending on the type of
167
167
            patch desired.
168
 
        :param local_target_branch: a local copy of the target branch
169
 
        :param public_branch: location of a public branch containing the target
170
 
            revision.
 
168
        :param local_target_branch: the submit branch, either itself or a local copy
 
169
        :param public_branch: location of a public branch containing
 
170
            the target revision.
171
171
        :param message: Message to use when committing the merge
172
172
        :return: The merge directive
173
173
 
181
181
        if revision_id == _mod_revision.NULL_REVISION:
182
182
            t_revision_id = None
183
183
        t = testament.StrictTestament3.from_revision(repository, t_revision_id)
184
 
        submit_branch = _mod_branch.Branch.open(target_branch)
 
184
        if local_target_branch is None:
 
185
            submit_branch = _mod_branch.Branch.open(target_branch)
 
186
        else:
 
187
            submit_branch = local_target_branch
185
188
        if submit_branch.get_public_branch() is not None:
186
189
            target_branch = submit_branch.get_public_branch()
187
190
        if patch_type is None:
373
376
            merge.
374
377
        :param time: The current POSIX timestamp time
375
378
        :param timezone: The timezone offset
376
 
        :param target_branch: The branch to apply the merge to
 
379
        :param target_branch: Location of the branch to apply the merge to
377
380
        :param patch: The text of a diff or bundle
378
381
        :param patch_type: None, "diff" or "bundle", depending on the contents
379
382
            of patch
567
570
        :param target_branch: The url of the branch to merge into
568
571
        :param include_patch: If true, include a preview patch
569
572
        :param include_bundle: If true, include a bundle
570
 
        :param local_target_branch: a local copy of the target branch
571
 
        :param public_branch: location of a public branch containing the target
572
 
            revision.
 
573
        :param local_target_branch: the target branch, either itself or a local copy
 
574
        :param public_branch: location of a public branch containing
 
575
            the target revision.
573
576
        :param message: Message to use when committing the merge
574
577
        :return: The merge directive
575
578
 
588
591
                t_revision_id = None
589
592
            t = testament.StrictTestament3.from_revision(repository,
590
593
                t_revision_id)
591
 
            submit_branch = _mod_branch.Branch.open(target_branch)
 
594
            if local_target_branch is None:
 
595
                submit_branch = _mod_branch.Branch.open(target_branch)
 
596
            else:
 
597
                submit_branch = local_target_branch
592
598
            submit_branch.lock_read()
593
599
            locked.append(submit_branch)
594
600
            if submit_branch.get_public_branch() is not None: