36
36
location = "C:/i/do/not/exist/"
38
38
location = "/i/do/not/exist/"
39
out, err = self.run_bzr('info '+location, retcode=3)
39
out, err = self.runbzr('info '+location, retcode=3)
40
40
self.assertEqual(out, '')
41
41
self.assertEqual(err, 'bzr: ERROR: Not a branch: %s\n' % location)
48
48
self.build_tree(['standalone/a'])
50
50
branch1 = tree1.branch
51
out, err = self.run_bzr('info standalone -v')
51
out, err = self.runbzr('info standalone')
52
52
self.assertEqualDiff(
53
"""Standalone tree (format: weave)
86
84
# Branch standalone with push location
87
85
branch2 = branch1.bzrdir.sprout('branch').open_branch()
88
86
branch2.set_push_location(branch1.bzrdir.root_transport.base)
89
out, err = self.run_bzr('info branch --verbose')
87
out, err = self.runbzr('info branch --verbose')
90
88
self.assertEqualDiff(
91
"""Standalone tree (format: weave)
141
138
branch3 = bzrlib.bzrdir.BzrDir.open('bound').open_branch()
142
139
branch3.bind(branch1)
143
140
bound_tree = branch3.bzrdir.open_workingtree()
144
out, err = self.run_bzr('info -v bound')
141
out, err = self.runbzr('info bound')
145
142
self.assertEqualDiff(
146
"""Checkout (format: knit)
148
144
checkout root: %s
149
145
checkout of branch: %s
196
191
format=knit1_format)
197
192
branch4.bind(branch1)
198
193
branch4.bzrdir.open_workingtree().update()
199
out, err = self.run_bzr('info checkout --verbose')
194
out, err = self.runbzr('info checkout --verbose')
200
195
self.assertEqualDiff(
201
"""Checkout (format: knit)
203
197
checkout root: %s
204
198
checkout of branch: %s
243
237
# Lightweight checkout (same as above, different branch and repository)
244
238
tree5 = branch1.create_checkout('lightcheckout', lightweight=True)
245
239
branch5 = tree5.branch
246
out, err = self.run_bzr('info -v lightcheckout')
240
out, err = self.runbzr('info lightcheckout')
247
241
self.assertEqualDiff(
248
"""Lightweight checkout (format: dirstate or dirstate-tags)
250
light checkout root: %s
251
checkout of branch: %s
243
light checkout root: %s
244
checkout of branch: %s
254
247
control: Meta directory format 1
290
282
datestring_last = format_date(rev.timestamp, rev.timezone)
292
284
# Out of date branched standalone branch will not be detected
293
out, err = self.run_bzr('info -v branch')
285
out, err = self.runbzr('info branch')
294
286
self.assertEqualDiff(
295
"""Standalone tree (format: weave)
299
290
Related branches:
334
324
self.assertEqual('', err)
336
326
# Out of date bound branch
337
out, err = self.run_bzr('info -v bound')
327
out, err = self.runbzr('info bound')
338
328
self.assertEqualDiff(
339
"""Checkout (format: knit)
341
330
checkout root: %s
342
331
checkout of branch: %s
385
373
self.assertEqual('', err)
387
375
# Out of date checkout
388
out, err = self.run_bzr('info -v checkout')
376
out, err = self.runbzr('info checkout')
389
377
self.assertEqualDiff(
390
"""Checkout (format: knit)
392
379
checkout root: %s
393
380
checkout of branch: %s
432
418
self.assertEqual('', err)
434
420
# Out of date lightweight checkout
435
out, err = self.run_bzr('info lightcheckout --verbose')
421
out, err = self.runbzr('info lightcheckout --verbose')
436
422
self.assertEqualDiff(
437
"""Lightweight checkout (format: dirstate or dirstate-tags)
439
light checkout root: %s
440
checkout of branch: %s
424
light checkout root: %s
425
checkout of branch: %s
443
428
control: Meta directory format 1
478
463
format = bzrdir.format_registry.make_bzrdir('default')
479
464
branch = self.make_branch('branch')
480
465
repo = branch.repository
481
out, err = self.run_bzr('info branch -v')
466
out, err = self.runbzr('info branch')
482
467
self.assertEqualDiff(
483
"""Standalone branch (format: dirstate or knit)
509
492
# Create shared repository
510
493
repo = self.make_repository('repo', shared=True, format=format)
511
494
repo.set_make_working_trees(False)
512
out, err = self.run_bzr('info -v repo')
495
out, err = self.runbzr('info repo')
513
496
self.assertEqualDiff(
514
"""Shared repository (format: dirstate or dirstate-tags or knit)
516
498
shared repository: %s
531
513
repo.bzrdir.root_transport.mkdir('branch')
532
514
branch1 = repo.bzrdir.create_branch_convenience('repo/branch',
534
out, err = self.run_bzr('info -v repo/branch')
516
out, err = self.runbzr('info repo/branch')
535
517
self.assertEqualDiff(
536
"""Repository branch (format: dirstate or knit)
538
519
shared repository: %s
539
520
repository branch: branch
562
542
tree2 = branch1.create_checkout('tree/lightcheckout',
563
543
lightweight=True)
564
544
branch2 = tree2.branch
565
self.assertCheckoutStatusOutput('-v tree/lightcheckout', tree2,
566
shared_repo=repo, repo_branch=branch1, verbose=True)
545
self.assertCheckoutStatusOutput('tree/lightcheckout', tree2,
568
548
# Create normal checkout
569
549
tree3 = branch1.create_checkout('tree/checkout')
576
556
tree2.commit('commit one')
577
557
rev = repo.get_revision(branch2.revision_history()[0])
578
558
datestring_first = format_date(rev.timestamp, rev.timezone)
579
out, err = self.run_bzr('info tree/lightcheckout --verbose')
559
out, err = self.runbzr('info tree/lightcheckout --verbose')
580
560
self.assertEqualDiff(
581
"""Lightweight checkout (format: dirstate or dirstate-tags)
583
light checkout root: %s
584
checkout of branch: %s
585
shared repository: %s
562
light checkout root: %s
563
shared repository: %s
564
repository branch: branch
588
567
control: Meta directory format 1
613
592
""" % (tree2.bzrdir.root_transport.base,
614
tree2.branch.bzrdir.root_transport.base,
615
593
repo.bzrdir.root_transport.base,
616
594
format.get_branch_format().get_format_description(),
617
595
format.repository_format.get_format_description(),
623
601
self.assertEqual('', err)
625
603
# Out of date checkout
626
out, err = self.run_bzr('info -v tree/checkout')
604
out, err = self.runbzr('info tree/checkout')
627
605
self.assertEqualDiff(
628
"""Checkout (format: dirstate)
630
607
checkout root: %s
631
608
checkout of branch: %s
667
643
self.build_tree(['tree/checkout/b'])
669
out, err = self.run_bzr('info tree/checkout --verbose')
645
out, err = self.runbzr('info tree/checkout --verbose')
670
646
self.assertEqualDiff(
671
"""Checkout (format: dirstate)
673
648
checkout root: %s
674
649
checkout of branch: %s
713
688
# Out of date lightweight checkout
714
689
rev = repo.get_revision(branch1.revision_history()[-1])
715
690
datestring_last = format_date(rev.timestamp, rev.timezone)
716
out, err = self.run_bzr('info tree/lightcheckout --verbose')
691
out, err = self.runbzr('info tree/lightcheckout --verbose')
717
692
self.assertEqualDiff(
718
"""Lightweight checkout (format: dirstate or dirstate-tags)
720
light checkout root: %s
721
checkout of branch: %s
722
shared repository: %s
694
light checkout root: %s
695
shared repository: %s
696
repository branch: branch
725
699
control: Meta directory format 1
752
726
""" % (tree2.bzrdir.root_transport.base,
753
tree2.branch.bzrdir.root_transport.base,
754
727
repo.bzrdir.root_transport.base,
755
728
format.get_branch_format().get_format_description(),
756
729
format.repository_format.get_format_description(),
762
735
self.assertEqual('', err)
764
737
# Show info about shared branch
765
out, err = self.run_bzr('info repo/branch --verbose')
738
out, err = self.runbzr('info repo/branch --verbose')
766
739
self.assertEqualDiff(
767
"""Repository branch (format: dirstate or knit)
769
741
shared repository: %s
770
742
repository branch: branch
795
767
self.assertEqual('', err)
797
769
# Show info about repository with revisions
798
out, err = self.run_bzr('info -v repo')
770
out, err = self.runbzr('info repo')
799
771
self.assertEqualDiff(
800
"""Shared repository (format: dirstate or dirstate-tags or knit)
802
773
shared repository: %s
823
794
# Create shared repository with working trees
824
795
repo = self.make_repository('repo', shared=True, format=format)
825
796
repo.set_make_working_trees(True)
826
out, err = self.run_bzr('info -v repo')
797
out, err = self.runbzr('info repo')
827
798
self.assertEqualDiff(
828
"""Shared repository with trees (format: dirstate or dirstate-tags or knit)
830
800
shared repository: %s
850
820
branch2 = branch1.bzrdir.sprout('repo/branch2').open_branch()
852
822
# Empty first branch
853
out, err = self.run_bzr('info repo/branch1 --verbose')
823
out, err = self.runbzr('info repo/branch1 --verbose')
854
824
self.assertEqualDiff(
855
"""Repository tree (format: knit)
857
shared repository: %s
858
repository branch: branch1
826
shared repository: %s
827
repository checkout: branch1
861
830
control: Meta directory format 1
893
862
tree1.commit('commit one')
894
863
rev = repo.get_revision(branch1.revision_history()[0])
895
864
datestring_first = format_date(rev.timestamp, rev.timezone)
896
out, err = self.run_bzr('info -v repo/branch1')
865
out, err = self.runbzr('info repo/branch1')
897
866
self.assertEqualDiff(
898
"""Repository tree (format: knit)
900
shared repository: %s
901
repository branch: branch1
868
shared repository: %s
869
repository checkout: branch1
904
872
control: Meta directory format 1
937
904
self.assertEqual('', err)
939
906
# Out of date second branch
940
out, err = self.run_bzr('info repo/branch2 --verbose')
907
out, err = self.runbzr('info repo/branch2 --verbose')
941
908
self.assertEqualDiff(
942
"""Repository tree (format: knit)
944
shared repository: %s
945
repository branch: branch2
910
shared repository: %s
911
repository checkout: branch2
947
913
Related branches:
948
914
parent branch: %s
983
949
# Update second branch
984
950
tree2 = branch2.bzrdir.open_workingtree()
985
951
tree2.pull(branch1)
986
out, err = self.run_bzr('info -v repo/branch2')
952
out, err = self.runbzr('info repo/branch2')
987
953
self.assertEqualDiff(
988
"""Repository tree (format: knit)
990
shared repository: %s
991
repository branch: branch2
955
shared repository: %s
956
repository checkout: branch2
993
958
Related branches:
994
959
parent branch: %s
1031
995
self.assertEqual('', err)
1033
997
# Show info about repository with revisions
1034
out, err = self.run_bzr('info -v repo')
998
out, err = self.runbzr('info repo')
1035
999
self.assertEqualDiff(
1036
"""Shared repository with trees (format: dirstate or dirstate-tags or knit)
1038
1001
shared repository: %s
1062
1025
# Create shared repository with working trees
1063
1026
repo = self.make_repository('repo', shared=True, format=format)
1064
1027
repo.set_make_working_trees(True)
1065
out, err = self.run_bzr('info -v repo')
1028
out, err = self.runbzr('info repo')
1066
1029
self.assertEqualDiff(
1067
"""Shared repository with trees (format: dirstate or dirstate-tags or knit)
1069
1031
shared repository: %s
1086
1048
control = repo.bzrdir
1087
1049
branch = control.create_branch()
1088
1050
control.create_workingtree()
1089
out, err = self.run_bzr('info -v repo')
1051
out, err = self.runbzr('info repo')
1090
1052
self.assertEqualDiff(
1091
"""Repository tree (format: knit)
1093
shared repository: %s
1094
repository branch: .
1054
shared repository: %s
1055
repository checkout: .
1097
1058
control: Meta directory format 1
1128
1088
tree_locked=False,
1129
1089
branch_locked=False, repo_locked=False,
1131
light_checkout=True,
1132
checkout_root=None):
1133
"""Check the output of info in a checkout.
1091
light_checkout=True):
1092
"""Check the output of info in a light checkout tree.
1135
1094
This is not quite a mirror of the info code: rather than using the
1136
1095
tree being examined to predict output, it uses a bunch of flags which
1156
1115
args = command_string.split(' ')
1157
1116
self.run_bzr_error([], 'info', *args)
1159
out, err = self.run_bzr('info %s' % command_string)
1161
(True, True): 'Lightweight checkout',
1162
(True, False): 'Repository checkout',
1163
(False, True): 'Lightweight checkout',
1164
(False, False): 'Checkout',
1165
}[(shared_repo is not None, light_checkout)]
1166
format = {True: 'dirstate or dirstate-tags',
1167
False: 'dirstate'}[light_checkout]
1118
out, err = self.runbzr('info %s' % command_string)
1168
1119
if repo_locked or branch_locked or tree_locked:
1169
1120
def locked_message(a_bool):
1182
1133
locked_message(repo_locked)))
1184
1135
expected_lock_output = ''
1187
1136
if light_checkout:
1188
tree_data = (" light checkout root: %s\n" %
1189
lco_tree.bzrdir.root_transport.base)
1191
if lco_tree.branch.get_bound_location() is not None:
1192
tree_data += ("%s checkout root: %s\n" % (extra_space,
1193
lco_tree.branch.bzrdir.root_transport.base))
1137
tree_data = (" light checkout root: %s" %
1138
lco_tree.bzrdir.root_transport.base)
1140
tree_data = (" checkout root: %s" %
1141
lco_tree.bzrdir.root_transport.base)
1194
1142
if shared_repo is not None:
1195
1143
branch_data = (
1196
" checkout of branch: %s\n"
1197
" shared repository: %s\n" %
1198
(repo_branch.bzrdir.root_transport.base,
1199
shared_repo.bzrdir.root_transport.base))
1144
" shared repository: %s\n"
1145
" repository branch: branch\n" %
1146
shared_repo.bzrdir.root_transport.base)
1200
1147
elif repo_branch is not None:
1201
1148
branch_data = (
1202
"%s checkout of branch: %s\n" %
1204
repo_branch.bzrdir.root_transport.base))
1149
" checkout of branch: %s\n" %
1150
repo_branch.bzrdir.root_transport.base)
1206
branch_data = (" checkout of branch: %s\n" %
1152
branch_data = (" checkout of branch: %s\n" %
1207
1153
lco_tree.branch.bzrdir.root_transport.base)
1278
self.assertCheckoutStatusOutput('-v tree/lightcheckout', lco_tree,
1279
repo_branch=repo_branch,
1280
verbose=True, light_checkout=True)
1222
self.assertCheckoutStatusOutput('tree/lightcheckout', lco_tree)
1282
1224
lco_tree.branch.repository.lock_write()
1284
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1285
lco_tree, repo_branch=repo_branch,
1286
repo_locked=True, verbose=True, light_checkout=True)
1226
self.assertCheckoutStatusOutput('tree/lightcheckout',
1288
1230
lco_tree.branch.repository.unlock()
1290
1232
lco_tree.branch.lock_write()
1292
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1234
self.assertCheckoutStatusOutput('tree/lightcheckout',
1294
1236
branch_locked=True,
1296
repo_branch=repo_branch,
1299
1239
lco_tree.branch.unlock()
1301
1241
lco_tree.lock_write()
1303
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1304
lco_tree, repo_branch=repo_branch,
1243
self.assertCheckoutStatusOutput('tree/lightcheckout',
1305
1245
tree_locked=True,
1306
1246
branch_locked=True,
1310
1249
lco_tree.unlock()
1312
1251
lco_tree.lock_write()
1313
1252
lco_tree.branch.repository.unlock()
1315
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1316
lco_tree, repo_branch=repo_branch,
1254
self.assertCheckoutStatusOutput('tree/lightcheckout',
1317
1256
tree_locked=True,
1321
1259
lco_tree.branch.repository.lock_write()
1322
1260
lco_tree.unlock()
1324
1262
lco_tree.lock_write()
1325
1263
lco_tree.branch.unlock()
1327
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1328
lco_tree, repo_branch=repo_branch,
1265
self.assertCheckoutStatusOutput('tree/lightcheckout',
1332
1269
lco_tree.branch.lock_write()
1333
1270
lco_tree.unlock()
1336
1273
lco_tree.branch.unlock()
1337
1274
lco_tree.branch.repository.lock_write()
1339
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1340
lco_tree, repo_branch=repo_branch,
1276
self.assertCheckoutStatusOutput('tree/lightcheckout',
1341
1278
tree_locked=True,
1345
1281
lco_tree.branch.repository.unlock()
1346
1282
lco_tree.branch.lock_write()
1349
1285
lco_tree.branch.lock_write()
1350
1286
lco_tree.branch.repository.unlock()
1352
self.assertCheckoutStatusOutput('-v tree/lightcheckout',
1353
lco_tree, repo_branch=repo_branch,
1288
self.assertCheckoutStatusOutput('tree/lightcheckout',
1357
1292
lco_tree.branch.repository.lock_write()
1358
1293
lco_tree.branch.unlock()
1410
1343
self.assertEqual('', err)
1412
1345
tree.lock_write()
1413
out, err = self.run_bzr('info -v branch')
1346
out, err = self.runbzr('info branch')
1414
1347
self.assertEqualDiff(
1415
"""Standalone tree (format: weave)
1417
1349
branch root: %s