483
542
def test_include_merges(self):
484
543
# Confirm --include-merges gives the same output as -n0
485
self.assertLogRevnos(['--include-merges'],
486
['2', '1.1.2', '1.2.1', '1.1.1', '1'],
487
working_dir='level0')
488
self.assertLogRevnos(['--include-merges'],
489
['2', '1.1.2', '1.2.1', '1.1.1', '1'],
490
working_dir='level0')
544
msg = ("The option '--include-merges' to 'bzr log' "
545
"has been deprecated in bzr 2.5. "
546
"Please use '--include-merged' instead.\n")
547
self.assertLogRevnos(['--include-merges'],
548
['2', '1.1.2', '1.2.1', '1.1.1', '1'],
549
working_dir='level0', err=msg)
550
self.assertLogRevnos(['--include-merges'],
551
['2', '1.1.2', '1.2.1', '1.1.1', '1'],
552
working_dir='level0', err=msg)
491
553
out_im, err_im = self.run_bzr('log --include-merges',
492
554
working_dir='level0')
493
555
out_n0, err_n0 = self.run_bzr('log -n0', working_dir='level0')
494
self.assertEqual('', err_im)
556
self.assertEqual(msg, err_im)
495
557
self.assertEqual('', err_n0)
496
558
self.assertEqual(out_im, out_n0)
560
def test_include_merged(self):
561
# Confirm --include-merged gives the same output as -n0
562
expected = ['2', '1.1.2', '1.2.1', '1.1.1', '1']
563
self.assertLogRevnos(['--include-merged'],
564
expected, working_dir='level0')
565
self.assertLogRevnos(['--include-merged'],
566
expected, working_dir='level0')
498
568
def test_force_merge_revisions_N(self):
499
569
self.assertLogRevnos(['-n2'],
500
570
['2', '1.1.2', '1.1.1', '1'],
893
971
self.prepare_tree()
895
973
self.assertLogRevnos(['dir2', 'file5'], ['5', '3'])
976
class MainlineGhostTests(TestLogWithLogCatcher):
979
super(MainlineGhostTests, self).setUp()
980
tree = self.make_branch_and_tree('')
981
tree.set_parent_ids(["spooky"], allow_leftmost_as_ghost=True)
983
tree.commit('msg1', rev_id='rev1')
984
tree.commit('msg2', rev_id='rev2')
986
def test_log_range(self):
987
self.assertLogRevnos(["-r1..2"], ["2", "1"])
989
def test_log_norange(self):
990
self.assertLogRevnos([], ["2", "1"])
992
def test_log_range_open_begin(self):
993
self.knownFailure("log with ghosts fails. bug #726466")
994
(stdout, stderr) = self.run_bzr(['log', '-r..2'], retcode=3)
995
self.assertEqual(["2", "1"],
996
[r.revno for r in self.get_captured_revisions()])
997
self.assertEquals("bzr: ERROR: Further revision history missing.", stderr)
999
def test_log_range_open_end(self):
1000
self.assertLogRevnos(["-r1.."], ["2", "1"])
1002
class TestLogMatch(TestLogWithLogCatcher):
1003
def prepare_tree(self):
1004
tree = self.make_branch_and_tree('')
1006
['/hello.txt', '/goodbye.txt'])
1007
tree.add('hello.txt')
1008
tree.commit(message='message1', committer='committer1', authors=['author1'])
1009
tree.add('goodbye.txt')
1010
tree.commit(message='message2', committer='committer2', authors=['author2'])
1012
def test_message(self):
1014
self.assertLogRevnos(["-m", "message1"], ["1"])
1015
self.assertLogRevnos(["-m", "message2"], ["2"])
1016
self.assertLogRevnos(["-m", "message"], ["2", "1"])
1017
self.assertLogRevnos(["-m", "message1", "-m", "message2"], ["2", "1"])
1018
self.assertLogRevnos(["--match-message", "message1"], ["1"])
1019
self.assertLogRevnos(["--match-message", "message2"], ["2"])
1020
self.assertLogRevnos(["--match-message", "message"], ["2", "1"])
1021
self.assertLogRevnos(["--match-message", "message1",
1022
"--match-message", "message2"], ["2", "1"])
1023
self.assertLogRevnos(["--message", "message1"], ["1"])
1024
self.assertLogRevnos(["--message", "message2"], ["2"])
1025
self.assertLogRevnos(["--message", "message"], ["2", "1"])
1026
self.assertLogRevnos(["--match-message", "message1",
1027
"--message", "message2"], ["2", "1"])
1028
self.assertLogRevnos(["--message", "message1",
1029
"--match-message", "message2"], ["2", "1"])
1031
def test_committer(self):
1033
self.assertLogRevnos(["-m", "committer1"], ["1"])
1034
self.assertLogRevnos(["-m", "committer2"], ["2"])
1035
self.assertLogRevnos(["-m", "committer"], ["2", "1"])
1036
self.assertLogRevnos(["-m", "committer1", "-m", "committer2"],
1038
self.assertLogRevnos(["--match-committer", "committer1"], ["1"])
1039
self.assertLogRevnos(["--match-committer", "committer2"], ["2"])
1040
self.assertLogRevnos(["--match-committer", "committer"], ["2", "1"])
1041
self.assertLogRevnos(["--match-committer", "committer1",
1042
"--match-committer", "committer2"], ["2", "1"])
1044
def test_author(self):
1046
self.assertLogRevnos(["-m", "author1"], ["1"])
1047
self.assertLogRevnos(["-m", "author2"], ["2"])
1048
self.assertLogRevnos(["-m", "author"], ["2", "1"])
1049
self.assertLogRevnos(["-m", "author1", "-m", "author2"],
1051
self.assertLogRevnos(["--match-author", "author1"], ["1"])
1052
self.assertLogRevnos(["--match-author", "author2"], ["2"])
1053
self.assertLogRevnos(["--match-author", "author"], ["2", "1"])
1054
self.assertLogRevnos(["--match-author", "author1",
1055
"--match-author", "author2"], ["2", "1"])
1058
class TestSmartServerLog(tests.TestCaseWithTransport):
1060
def test_standard_log(self):
1061
self.setup_smart_server_with_call_log()
1062
t = self.make_branch_and_tree('branch')
1063
self.build_tree_contents([('branch/foo', 'thecontents')])
1066
self.reset_smart_call_log()
1067
out, err = self.run_bzr(['log', self.get_url('branch')])
1068
# This figure represent the amount of work to perform this use case. It
1069
# is entirely ok to reduce this number if a test fails due to rpc_count
1070
# being too low. If rpc_count increases, more network roundtrips have
1071
# become necessary for this use case. Please do not adjust this number
1072
# upwards without agreement from bzr's network support maintainers.
1073
self.assertThat(self.hpss_calls, ContainsNoVfsCalls)
1074
self.assertLength(10, self.hpss_calls)
1076
def test_verbose_log(self):
1077
self.setup_smart_server_with_call_log()
1078
t = self.make_branch_and_tree('branch')
1079
self.build_tree_contents([('branch/foo', 'thecontents')])
1082
self.reset_smart_call_log()
1083
out, err = self.run_bzr(['log', '-v', self.get_url('branch')])
1084
# This figure represent the amount of work to perform this use case. It
1085
# is entirely ok to reduce this number if a test fails due to rpc_count
1086
# being too low. If rpc_count increases, more network roundtrips have
1087
# become necessary for this use case. Please do not adjust this number
1088
# upwards without agreement from bzr's network support maintainers.
1089
self.assertLength(11, self.hpss_calls)
1090
self.assertThat(self.hpss_calls, ContainsNoVfsCalls)
1092
def test_per_file(self):
1093
self.setup_smart_server_with_call_log()
1094
t = self.make_branch_and_tree('branch')
1095
self.build_tree_contents([('branch/foo', 'thecontents')])
1098
self.reset_smart_call_log()
1099
out, err = self.run_bzr(['log', '-v', self.get_url('branch') + "/foo"])
1100
# This figure represent the amount of work to perform this use case. It
1101
# is entirely ok to reduce this number if a test fails due to rpc_count
1102
# being too low. If rpc_count increases, more network roundtrips have
1103
# become necessary for this use case. Please do not adjust this number
1104
# upwards without agreement from bzr's network support maintainers.
1105
self.assertLength(15, self.hpss_calls)
1106
self.assertThat(self.hpss_calls, ContainsNoVfsCalls)