/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-02-18 03:11:01 UTC
  • mto: (7490.3.4 work)
  • mto: This revision was merged to the branch mainline in revision 7495.
  • Revision ID: jelmer@jelmer.uk-20200218031101-trloo2n5k2n01q9r
Plumb through tag_selector.

Show diffs side-by-side

added added

removed removed

Lines of Context:
260
260
        return "~%s/%s" % (owner, project)
261
261
 
262
262
    def _publish_git(self, local_branch, base_path, name, owner, project=None,
263
 
                     revision_id=None, overwrite=False, allow_lossy=True):
 
263
                     revision_id=None, overwrite=False, allow_lossy=True,
 
264
                     tag_selector=None):
264
265
        to_path = self._get_derived_git_path(base_path, owner, project)
265
266
        to_transport = get_transport("git+ssh://git.launchpad.net/" + to_path)
266
267
        try:
272
273
        if dir_to is None:
273
274
            try:
274
275
                br_to = local_branch.create_clone_on_transport(
275
 
                    to_transport, revision_id=revision_id, name=name)
 
276
                    to_transport, revision_id=revision_id, name=name,
 
277
                    tag_selector=tag_selector)
276
278
            except errors.NoRoundtrippingSupport:
277
279
                br_to = local_branch.create_clone_on_transport(
278
280
                    to_transport, revision_id=revision_id, name=name,
279
 
                    lossy=True)
 
281
                    lossy=True, tag_selector=tag_selector)
280
282
        else:
281
283
            try:
282
284
                dir_to = dir_to.push_branch(
283
 
                    local_branch, revision_id, overwrite=overwrite, name=name)
 
285
                    local_branch, revision_id, overwrite=overwrite, name=name,
 
286
                    tag_selector=tag_selector)
284
287
            except errors.NoRoundtrippingSupport:
285
288
                if not allow_lossy:
286
289
                    raise
287
290
                dir_to = dir_to.push_branch(
288
291
                    local_branch, revision_id, overwrite=overwrite, name=name,
289
 
                    lossy=True)
 
292
                    lossy=True, tag_selector=tag_selector)
290
293
            br_to = dir_to.target_branch
291
294
        return br_to, (
292
295
            "https://git.launchpad.net/%s/+ref/%s" % (to_path, name))
312
315
 
313
316
    def _publish_bzr(self, local_branch, base_branch, name, owner,
314
317
                     project=None, revision_id=None, overwrite=False,
315
 
                     allow_lossy=True):
 
318
                     allow_lossy=True, tag_selector=None):
316
319
        to_path = self._get_derived_bzr_path(base_branch, name, owner, project)
317
320
        to_transport = get_transport("lp:" + to_path)
318
321
        try:
323
326
 
324
327
        if dir_to is None:
325
328
            br_to = local_branch.create_clone_on_transport(
326
 
                to_transport, revision_id=revision_id)
 
329
                to_transport, revision_id=revision_id, tag_selector=tag_selector)
327
330
        else:
328
331
            br_to = dir_to.push_branch(
329
 
                local_branch, revision_id, overwrite=overwrite).target_branch
 
332
                local_branch, revision_id, overwrite=overwrite,
 
333
                tag_selector=tag_selector).target_branch
330
334
        return br_to, ("https://code.launchpad.net/" + to_path)
331
335
 
332
336
    def _split_url(self, url):
343
347
 
344
348
    def publish_derived(self, local_branch, base_branch, name, project=None,
345
349
                        owner=None, revision_id=None, overwrite=False,
346
 
                        allow_lossy=True):
 
350
                        allow_lossy=True, tag_selector=None):
347
351
        """Publish a branch to the site, derived from base_branch.
348
352
 
349
353
        :param base_branch: branch to derive the new branch from
362
366
            return self._publish_bzr(
363
367
                local_branch, base_branch, name, project=project, owner=owner,
364
368
                revision_id=revision_id, overwrite=overwrite,
365
 
                allow_lossy=allow_lossy)
 
369
                allow_lossy=allow_lossy, tag_selector=tag_selector)
366
370
        elif base_vcs == 'git':
367
371
            return self._publish_git(
368
372
                local_branch, base_path, name, project=project, owner=owner,
369
373
                revision_id=revision_id, overwrite=overwrite,
370
 
                allow_lossy=allow_lossy)
 
374
                allow_lossy=allow_lossy, tag_selector=tag_selector)
371
375
        else:
372
376
            raise AssertionError('not a valid Launchpad URL')
373
377