/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 breezy/plugins/propose/launchpad.py

  • Committer: Jelmer Vernooij
  • Date: 2020-03-22 19:12:43 UTC
  • mfrom: (7490.7.6 work)
  • mto: (7490.7.7 work)
  • mto: This revision was merged to the branch mainline in revision 7501.
  • Revision ID: jelmer@jelmer.uk-20200322191243-yx8ils8lvfmfh7rq
Merge lp:brz/3.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
200
200
 
201
201
    supports_merge_proposal_commit_message = True
202
202
 
 
203
    supports_allow_collaboration = False
 
204
 
203
205
    merge_proposal_description_format = 'plain'
204
206
 
205
207
    def __init__(self, staging=False):
260
262
        return "~%s/%s" % (owner, project)
261
263
 
262
264
    def _publish_git(self, local_branch, base_path, name, owner, project=None,
263
 
                     revision_id=None, overwrite=False, allow_lossy=True):
 
265
                     revision_id=None, overwrite=False, allow_lossy=True,
 
266
                     tag_selector=None):
264
267
        to_path = self._get_derived_git_path(base_path, owner, project)
265
268
        to_transport = get_transport("git+ssh://git.launchpad.net/" + to_path)
266
269
        try:
272
275
        if dir_to is None:
273
276
            try:
274
277
                br_to = local_branch.create_clone_on_transport(
275
 
                    to_transport, revision_id=revision_id, name=name)
 
278
                    to_transport, revision_id=revision_id, name=name,
 
279
                    tag_selector=tag_selector)
276
280
            except errors.NoRoundtrippingSupport:
277
281
                br_to = local_branch.create_clone_on_transport(
278
282
                    to_transport, revision_id=revision_id, name=name,
279
 
                    lossy=True)
 
283
                    lossy=True, tag_selector=tag_selector)
280
284
        else:
281
285
            try:
282
286
                dir_to = dir_to.push_branch(
283
 
                    local_branch, revision_id, overwrite=overwrite, name=name)
 
287
                    local_branch, revision_id, overwrite=overwrite, name=name,
 
288
                    tag_selector=tag_selector)
284
289
            except errors.NoRoundtrippingSupport:
285
290
                if not allow_lossy:
286
291
                    raise
287
292
                dir_to = dir_to.push_branch(
288
293
                    local_branch, revision_id, overwrite=overwrite, name=name,
289
 
                    lossy=True)
 
294
                    lossy=True, tag_selector=tag_selector)
290
295
            br_to = dir_to.target_branch
291
296
        return br_to, (
292
297
            "https://git.launchpad.net/%s/+ref/%s" % (to_path, name))
312
317
 
313
318
    def _publish_bzr(self, local_branch, base_branch, name, owner,
314
319
                     project=None, revision_id=None, overwrite=False,
315
 
                     allow_lossy=True):
 
320
                     allow_lossy=True, tag_selector=None):
316
321
        to_path = self._get_derived_bzr_path(base_branch, name, owner, project)
317
322
        to_transport = get_transport("lp:" + to_path)
318
323
        try:
323
328
 
324
329
        if dir_to is None:
325
330
            br_to = local_branch.create_clone_on_transport(
326
 
                to_transport, revision_id=revision_id)
 
331
                to_transport, revision_id=revision_id, tag_selector=tag_selector)
327
332
        else:
328
333
            br_to = dir_to.push_branch(
329
 
                local_branch, revision_id, overwrite=overwrite).target_branch
 
334
                local_branch, revision_id, overwrite=overwrite,
 
335
                tag_selector=tag_selector).target_branch
330
336
        return br_to, ("https://code.launchpad.net/" + to_path)
331
337
 
332
338
    def _split_url(self, url):
343
349
 
344
350
    def publish_derived(self, local_branch, base_branch, name, project=None,
345
351
                        owner=None, revision_id=None, overwrite=False,
346
 
                        allow_lossy=True):
 
352
                        allow_lossy=True, tag_selector=None):
347
353
        """Publish a branch to the site, derived from base_branch.
348
354
 
349
355
        :param base_branch: branch to derive the new branch from
362
368
            return self._publish_bzr(
363
369
                local_branch, base_branch, name, project=project, owner=owner,
364
370
                revision_id=revision_id, overwrite=overwrite,
365
 
                allow_lossy=allow_lossy)
 
371
                allow_lossy=allow_lossy, tag_selector=tag_selector)
366
372
        elif base_vcs == 'git':
367
373
            return self._publish_git(
368
374
                local_branch, base_path, name, project=project, owner=owner,
369
375
                revision_id=revision_id, overwrite=overwrite,
370
 
                allow_lossy=allow_lossy)
 
376
                allow_lossy=allow_lossy, tag_selector=tag_selector)
371
377
        else:
372
378
            raise AssertionError('not a valid Launchpad URL')
373
379
 
546
552
 
547
553
    def create_proposal(self, description, reviewers=None, labels=None,
548
554
                        prerequisite_branch=None, commit_message=None,
549
 
                        work_in_progress=False):
 
555
                        work_in_progress=False, allow_collaboration=False):
550
556
        """Perform the submission."""
551
557
        if labels:
552
558
            raise LabelsUnsupported(self)