91
91
"""Helper method for LogFormatter tests"""
94
self.build_tree_contents([('a', b'hello moto\n')])
95
self.wt_commit(wt, 'simple log message', rev_id=b'a1')
96
self.build_tree_contents([('b', b'goodbye\n')])
94
self.build_tree_contents([('a', 'hello moto\n')])
95
self.wt_commit(wt, 'simple log message', rev_id='a1')
96
self.build_tree_contents([('b', 'goodbye\n')])
98
self.wt_commit(wt, 'multiline\nlog\nmessage\n', rev_id=b'a2')
98
self.wt_commit(wt, 'multiline\nlog\nmessage\n', rev_id='a2')
100
self.build_tree_contents([('c', b'just another manic monday\n')])
100
self.build_tree_contents([('c', 'just another manic monday\n')])
102
self.wt_commit(wt, 'single line with trailing newline\n', rev_id=b'a3')
102
self.wt_commit(wt, 'single line with trailing newline\n', rev_id='a3')
105
105
def _prepare_tree_with_merges(self, with_tags=False):
108
108
self.addCleanup(wt.unlock)
110
self.wt_commit(wt, 'rev-1', rev_id=b'rev-1')
111
self.wt_commit(wt, 'rev-merged', rev_id=b'rev-2a')
110
self.wt_commit(wt, 'rev-1', rev_id='rev-1')
111
self.wt_commit(wt, 'rev-merged', rev_id='rev-2a')
112
112
wt.set_parent_ids(['rev-1', 'rev-2a'])
113
113
wt.branch.set_last_revision_info(1, 'rev-1')
114
self.wt_commit(wt, 'rev-2', rev_id=b'rev-2b')
114
self.wt_commit(wt, 'rev-2', rev_id='rev-2b')
116
116
branch = wt.branch
117
117
branch.tags.set_tag('v0.2', 'rev-2b')
118
self.wt_commit(wt, 'rev-3', rev_id=b'rev-3')
118
self.wt_commit(wt, 'rev-3', rev_id='rev-3')
119
119
branch.tags.set_tag('v1.0rc1', 'rev-3')
120
120
branch.tags.set_tag('v1.0', 'rev-3')
292
292
merger = trunk.controldir.sprout('merger').open_workingtree()
293
293
self.build_tree_contents([
295
('adder/dir/file', b'foo'),
295
('adder/dir/file', 'foo'),
297
297
adder.add(['dir', 'dir/file'])
298
298
adder.commit('added dir') # 1.1.1
388
388
def test_short_log_with_merges_and_range(self):
389
389
wt = self._prepare_tree_with_merges()
390
self.wt_commit(wt, 'rev-3a', rev_id=b'rev-3a')
390
self.wt_commit(wt, 'rev-3a', rev_id='rev-3a')
391
391
wt.branch.set_last_revision_info(2, 'rev-2b')
392
392
wt.set_parent_ids(['rev-2b', 'rev-3a'])
393
self.wt_commit(wt, 'rev-3b', rev_id=b'rev-3b')
393
self.wt_commit(wt, 'rev-3b', rev_id='rev-3b')
394
394
self.assertFormatterResult("""\
395
395
3 Joe Foo\t2005-11-22 [merge]
433
433
wt = self.make_branch_and_tree('parent')
434
434
self.build_tree(['parent/f1', 'parent/f2'])
435
435
wt.add(['f1', 'f2'])
436
self.wt_commit(wt, 'first post', rev_id=b'a')
436
self.wt_commit(wt, 'first post', rev_id='a')
437
437
child_wt = wt.controldir.sprout('child').open_workingtree()
438
self.wt_commit(child_wt, 'branch 1 changes', rev_id=b'b')
438
self.wt_commit(child_wt, 'branch 1 changes', rev_id='b')
439
439
wt.merge_from_branch(child_wt.branch)
440
self.wt_commit(wt, 'merge branch 1', rev_id=b'c')
440
self.wt_commit(wt, 'merge branch 1', rev_id='c')
441
441
self.assertFormatterResult("""\
442
442
2 Joe Foo\t2005-11-22 [merge]
572
572
self.wt_commit(wt, 'first post')
573
573
child_wt = wt.controldir.sprout('child').open_workingtree()
574
574
os.unlink('child/f1')
575
self.build_tree_contents([('child/f2', b'hello\n')])
575
self.build_tree_contents([('child/f2', 'hello\n')])
576
576
self.wt_commit(child_wt, 'removed f1 and modified f2')
577
577
wt.merge_from_branch(child_wt.branch)
578
578
self.wt_commit(wt, 'merge branch 1')
747
747
wt = self.make_branch_and_tree('parent')
748
748
self.build_tree(['parent/f1', 'parent/f2'])
749
749
wt.add(['f1', 'f2'])
750
self.wt_commit(wt, 'first post', rev_id=b'a')
750
self.wt_commit(wt, 'first post', rev_id='a')
751
751
child_wt = wt.controldir.sprout('child').open_workingtree()
752
self.wt_commit(child_wt, 'branch 1 changes', rev_id=b'b')
752
self.wt_commit(child_wt, 'branch 1 changes', rev_id='b')
753
753
wt.merge_from_branch(child_wt.branch)
754
self.wt_commit(wt, 'merge branch 1', rev_id=b'c')
754
self.wt_commit(wt, 'merge branch 1', rev_id='c')
755
755
self.assertFormatterResult("""\
756
756
------------------------------------------------------------
815
815
self.wt_commit(wt, 'first post')
816
816
child_wt = wt.controldir.sprout('child').open_workingtree()
817
817
os.unlink('child/f1')
818
self.build_tree_contents([('child/f2', b'hello\n')])
818
self.build_tree_contents([('child/f2', 'hello\n')])
819
819
self.wt_commit(child_wt, 'removed f1 and modified f2')
820
820
wt.merge_from_branch(child_wt.branch)
821
821
self.wt_commit(wt, 'merge branch 1')
1047
1047
tree = self.make_branch_and_tree('tree_a')
1048
1048
self.build_tree(['tree_a/foo'])
1049
1049
tree.add('foo')
1050
tree.commit('bar', rev_id=b'bar-id')
1050
tree.commit('bar', rev_id='bar-id')
1051
1051
s = self.make_utf8_encoded_stringio()
1052
1052
log.show_changed_revisions(tree.branch, [], ['bar-id'], s)
1053
1053
self.assertContainsRe(s.getvalue(), 'bar')
1154
1154
tree = self.make_branch_and_tree('tree')
1155
1155
tree.lock_write()
1156
1156
self.addCleanup(tree.unlock)
1157
tree.commit('1a', rev_id=b'1a')
1158
tree.commit('2a', rev_id=b'2a')
1159
tree.commit('3a', rev_id=b'3a')
1157
tree.commit('1a', rev_id='1a')
1158
tree.commit('2a', rev_id='2a')
1159
tree.commit('3a', rev_id='3a')
1162
1162
def setup_ab_tree(self):
1163
1163
tree = self.setup_a_tree()
1164
1164
tree.set_last_revision('1a')
1165
1165
tree.branch.set_last_revision_info(1, '1a')
1166
tree.commit('2b', rev_id=b'2b')
1167
tree.commit('3b', rev_id=b'3b')
1166
tree.commit('2b', rev_id='2b')
1167
tree.commit('3b', rev_id='3b')
1170
1170
def setup_ac_tree(self):
1171
1171
tree = self.setup_a_tree()
1172
1172
tree.set_last_revision(revision.NULL_REVISION)
1173
1173
tree.branch.set_last_revision_info(0, revision.NULL_REVISION)
1174
tree.commit('1c', rev_id=b'1c')
1175
tree.commit('2c', rev_id=b'2c')
1176
tree.commit('3c', rev_id=b'3c')
1174
tree.commit('1c', rev_id='1c')
1175
tree.commit('2c', rev_id='2c')
1176
tree.commit('3c', rev_id='3c')
1179
1179
def test_all_new(self):
1256
1256
'timestamp': 1132617600, # Mon 2005-11-22 00:00:00 +0000
1257
1257
'timezone': 0, # UTC
1259
tree.commit('commit 1a', rev_id=b'1a', **kwargs)
1260
tree.commit('commit 2a', rev_id=b'2a', **kwargs)
1261
tree.commit('commit 3a', rev_id=b'3a', **kwargs)
1259
tree.commit('commit 1a', rev_id='1a', **kwargs)
1260
tree.commit('commit 2a', rev_id='2a', **kwargs)
1261
tree.commit('commit 3a', rev_id='3a', **kwargs)
1264
1264
def setup_ab_tree(self):
1270
1270
'timestamp': 1132617600, # Mon 2005-11-22 00:00:00 +0000
1271
1271
'timezone': 0, # UTC
1273
tree.commit('commit 2b', rev_id=b'2b', **kwargs)
1274
tree.commit('commit 3b', rev_id=b'3b', **kwargs)
1273
tree.commit('commit 2b', rev_id='2b', **kwargs)
1274
tree.commit('commit 3b', rev_id='3b', **kwargs)
1277
1277
def test_one_revision(self):
1377
1377
tree = self.make_branch_and_tree(u'.')
1378
1378
self.build_tree(['a', 'b'])
1380
self.wt_commit(tree, 'simple log message', rev_id=b'a1',
1380
self.wt_commit(tree, 'simple log message', rev_id='a1',
1381
1381
revprops={'bugs': 'test://bug/id fixed'})
1383
self.wt_commit(tree, 'multiline\nlog\nmessage\n', rev_id=b'a2',
1383
self.wt_commit(tree, 'multiline\nlog\nmessage\n', rev_id='a2',
1384
1384
authors=['Joe Bar <joe@bar.com>'],
1385
1385
revprops={'bugs': 'test://bug/id fixed\n'
1386
1386
'test://bug/2 fixed'})
1431
1431
def test_wrong_bugs_property(self):
1432
1432
tree = self.make_branch_and_tree(u'.')
1433
1433
self.build_tree(['foo'])
1434
self.wt_commit(tree, 'simple log message', rev_id=b'a1',
1434
self.wt_commit(tree, 'simple log message', rev_id='a1',
1435
1435
revprops={'bugs': 'test://bug/id invalid_value'})
1436
1436
self.assertFormatterResult("""\
1437
1437
1 Joe Foo\t2005-11-22