339
339
self.remote_real.get_refs())
341
def test_push_branch_new_with_tags(self):
342
remote = ControlDir.open(self.remote_url)
343
builder = self.make_branch_builder('local', format=self._from_format)
344
builder.start_series()
345
rev_1 = builder.build_snapshot(None, [
346
('add', ('', None, 'directory', '')),
347
('add', ('filename', None, 'file', b'content'))])
348
rev_2 = builder.build_snapshot(
349
[rev_1], [('modify', ('filename', b'new-content\n'))])
350
rev_3 = builder.build_snapshot(
351
[rev_1], [('modify', ('filename', b'new-new-content\n'))])
352
builder.finish_series()
353
branch = builder.get_branch()
355
branch.tags.set_tag('atag', rev_2)
356
except TagsNotSupported:
357
raise TestNotApplicable('source format does not support tags')
359
branch.get_config_stack().set('branch.fetch_tags', True)
360
if self._from_format == 'git':
361
result = remote.push_branch(branch, name='newbranch')
363
result = remote.push_branch(
364
branch, lossy=True, name='newbranch')
366
self.assertEqual(0, result.old_revno)
367
if self._from_format == 'git':
368
self.assertEqual(2, result.new_revno)
370
self.assertIs(None, result.new_revno)
372
result.report(BytesIO())
375
{b'refs/heads/newbranch', b'refs/tags/atag'},
376
set(self.remote_real.get_refs().keys()))
341
378
def test_push(self):
342
379
c1 = self.remote_real.do_commit(
343
380
message=b'message',