28
28
class TestLog(ExternalBase):
30
def _prepare(self, format=None):
32
self.run_bzr(["init", "--format="+format])
35
self.build_tree(['hello.txt', 'goodbye.txt', 'meep.txt'])
36
self.run_bzr("add hello.txt")
37
self.run_bzr("commit -m message1 hello.txt")
38
self.run_bzr("add goodbye.txt")
39
self.run_bzr("commit -m message2 goodbye.txt")
40
self.run_bzr("add meep.txt")
41
self.run_bzr("commit -m message3 meep.txt")
42
self.full_log = self.run_bzr("log")[0]
30
def _prepare(self, path='.', format=None):
31
tree = self.make_branch_and_tree(path, format=format)
33
[path + '/hello.txt', path + '/goodbye.txt', path + '/meep.txt'])
35
tree.commit(message='message1')
36
tree.add('goodbye.txt')
37
tree.commit(message='message2')
39
tree.commit(message='message3')
40
self.full_log = self.run_bzr(["log", path])[0]
44
43
def test_log_null_end_revspec(self):
100
99
['log', '-r3..1'])
102
101
def test_log_revno_n_path(self):
102
self._prepare(path='branch1')
103
self._prepare(path='branch2')
111
104
log = self.run_bzr("log -r revno:2:branch1..revno:3:branch2",
113
106
log = self.run_bzr("log -r revno:1:branch2..revno:3:branch2")[0]
127
120
err, 'Path does not have any revision history: does-not-exist')
129
122
def test_log_with_tags(self):
130
self._prepare(format='dirstate-tags')
131
self.run_bzr('tag -r1 tag1')
132
self.run_bzr('tag -r1 tag1.1')
133
self.run_bzr('tag tag3')
123
tree = self._prepare(format='dirstate-tags')
125
branch.tags.set_tag('tag1', branch.get_rev_id(1))
126
branch.tags.set_tag('tag1.1', branch.get_rev_id(1))
127
branch.tags.set_tag('tag3', branch.last_revision())
135
129
log = self.run_bzr("log -r-1")[0]
136
130
self.assertTrue('tags: tag3' in log)
141
135
self.assertContainsRe(log, r'tags: (tag1, tag1\.1|tag1\.1, tag1)')
143
137
def test_merged_log_with_tags(self):
146
self._prepare(format='dirstate-tags')
148
self.run_bzr('branch branch1 branch2')
150
self.run_bzr('commit -m foobar --unchanged')
151
self.run_bzr('tag tag1')
152
os.chdir('../branch2')
153
self.run_bzr('merge ../branch1')
154
self.run_bzr(['commit', '-m', 'merge branch 1'])
138
branch1_tree = self._prepare(path='branch1', format='dirstate-tags')
139
branch1 = branch1_tree.branch
140
branch2_tree = branch1_tree.bzrdir.sprout('branch2').open_workingtree()
141
branch1_tree.commit(message='foobar', allow_pointless=True)
142
branch1.tags.set_tag('tag1', branch1.last_revision())
144
self.run_bzr('merge ../branch1') # tags don't propagate otherwise
145
branch2_tree.commit(message='merge branch 1')
155
146
log = self.run_bzr("log -r-1")[0]
156
147
self.assertContainsRe(log, r' tags: tag1')
157
148
log = self.run_bzr("log -r3.1.1")[0]
167
158
class TestLogMerges(ExternalBase):
169
160
def _prepare(self):
170
self.build_tree(['parent/'])
171
self.run_bzr('init parent')
172
self.run_bzr(['commit', '-m', 'first post', '--unchanged', 'parent'])
173
self.run_bzr('branch parent child')
174
self.run_bzr(['commit', '-m', 'branch 1', '--unchanged', 'child'])
175
self.run_bzr('branch child smallerchild')
176
self.run_bzr(['commit', '-m', 'branch 2', '--unchanged',
179
self.run_bzr('merge ../smallerchild')
180
self.run_bzr(['commit', '-m', 'merge branch 2'])
181
os.chdir('../parent')
182
self.run_bzr('merge ../child')
183
self.run_bzr(['commit', '-m', 'merge branch 1'])
161
parent_tree = self.make_branch_and_tree('parent')
162
parent_tree.commit(message='first post', allow_pointless=True)
163
child_tree = parent_tree.bzrdir.sprout('child').open_workingtree()
164
child_tree.commit(message='branch 1', allow_pointless=True)
166
child_tree.bzrdir.sprout('smallerchild').open_workingtree()
167
smaller_tree.commit(message='branch 2', allow_pointless=True)
168
child_tree.merge_from_branch(smaller_tree.branch)
169
child_tree.commit(message='merge branch 2')
170
parent_tree.merge_from_branch(child_tree.branch)
171
parent_tree.commit(message='merge branch 1')
185
174
def test_merges_are_indented_by_level(self):
438
427
tree.commit('add file2')
439
428
tree.add('file3')
440
429
tree.commit('add file3')
441
self.run_bzr('branch parent child')
442
print >> file('child/file2', 'wb'), 'hello'
443
self.run_bzr(['commit', '-m', 'branch 1', 'child'])
430
child_tree = tree.bzrdir.sprout('child').open_workingtree()
431
self.build_tree_contents([('child/file2', 'hello')])
432
child_tree.commit(message='branch 1')
433
tree.merge_from_branch(child_tree.branch)
434
tree.commit(message='merge child branch')
444
435
os.chdir('parent')
445
self.run_bzr('merge ../child')
446
self.run_bzr(['commit', '-m', 'merge child branch'])
447
436
log = self.run_bzr('log file1')[0]
448
437
self.assertContainsRe(log, 'revno: 1\n')
449
438
self.assertNotContainsRe(log, 'revno: 2\n')