~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_info.py

  • Committer: Martin Pool
  • Date: 2005-06-10 09:08:09 UTC
  • Revision ID: mbp@sourcefrog.net-20050610090809-648401fe0bde7b7a
doc

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006 by Canonical Ltd
2
 
# -*- coding: utf-8 -*-
3
 
 
4
 
# This program is free software; you can redistribute it and/or modify
5
 
# it under the terms of the GNU General Public License as published by
6
 
# the Free Software Foundation; either version 2 of the License, or
7
 
# (at your option) any later version.
8
 
 
9
 
# This program is distributed in the hope that it will be useful,
10
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 
# GNU General Public License for more details.
13
 
 
14
 
# You should have received a copy of the GNU General Public License
15
 
# along with this program; if not, write to the Free Software
16
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
 
 
18
 
 
19
 
"""Tests for the info command of bzr."""
20
 
 
21
 
 
22
 
import bzrlib
23
 
 
24
 
 
25
 
from bzrlib.osutils import format_date
26
 
from bzrlib.tests import TestSkipped
27
 
from bzrlib.tests.blackbox import ExternalBase
28
 
 
29
 
 
30
 
class TestInfo(ExternalBase):
31
 
 
32
 
    def test_info_non_existing(self):
33
 
        out, err = self.runbzr('info /i/do/not/exist/', retcode=3)
34
 
        self.assertEqual(out, '')
35
 
        self.assertEqual(err, 'bzr: ERROR: Not a branch: /i/do/not/exist/\n')
36
 
 
37
 
    def test_info_standalone(self):
38
 
        transport = self.get_transport()
39
 
 
40
 
        # Create initial standalone branch
41
 
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
42
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirFormat6())
43
 
        tree1 = self.make_branch_and_tree('standalone')
44
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
45
 
        self.build_tree(['standalone/a'])
46
 
        tree1.add('a')
47
 
        branch1 = tree1.branch
48
 
        out, err = self.runbzr('info standalone')
49
 
        self.assertEqualDiff(
50
 
"""Location:
51
 
  branch root: %s
52
 
 
53
 
Format:
54
 
       control: All-in-one format 6
55
 
  working tree: Working tree format 2
56
 
        branch: Branch format 4
57
 
    repository: Weave repository format 6
58
 
 
59
 
In the working tree:
60
 
         0 unchanged
61
 
         0 modified
62
 
         1 added
63
 
         0 removed
64
 
         0 renamed
65
 
         0 unknown
66
 
         0 ignored
67
 
         0 versioned subdirectories
68
 
 
69
 
Branch history:
70
 
         0 revisions
71
 
 
72
 
Revision store:
73
 
         0 revisions
74
 
         0 KiB
75
 
""" % branch1.bzrdir.root_transport.base, out)
76
 
        self.assertEqual('', err)
77
 
        tree1.commit('commit one')
78
 
        rev = branch1.repository.get_revision(branch1.revision_history()[0])
79
 
        datestring_first = format_date(rev.timestamp, rev.timezone)
80
 
 
81
 
        # Branch standalone with push location
82
 
        branch2 = branch1.bzrdir.sprout('branch').open_branch()
83
 
        branch2.set_push_location(branch1.bzrdir.root_transport.base)
84
 
        out, err = self.runbzr('info branch --verbose')
85
 
        self.assertEqualDiff(
86
 
"""Location:
87
 
  branch root: %s
88
 
 
89
 
Related branches:
90
 
      parent branch: %s
91
 
  publish to branch: %s
92
 
 
93
 
Format:
94
 
       control: All-in-one format 6
95
 
  working tree: Working tree format 2
96
 
        branch: Branch format 4
97
 
    repository: Weave repository format 6
98
 
 
99
 
In the working tree:
100
 
         1 unchanged
101
 
         0 modified
102
 
         0 added
103
 
         0 removed
104
 
         0 renamed
105
 
         0 unknown
106
 
         0 ignored
107
 
         0 versioned subdirectories
108
 
 
109
 
Branch history:
110
 
         1 revision
111
 
         1 committer
112
 
         0 days old
113
 
   first revision: %s
114
 
  latest revision: %s
115
 
 
116
 
Revision store:
117
 
         1 revision
118
 
         %d KiB
119
 
""" % (branch2.bzrdir.root_transport.base,
120
 
       branch1.bzrdir.root_transport.base,
121
 
       branch1.bzrdir.root_transport.base,
122
 
       datestring_first, datestring_first,
123
 
       # poking at _revision_store isn't all that clean, but neither is
124
 
       # having the ui test dependent on the exact overhead of a given store.
125
 
       branch2.repository._revision_store.total_size(
126
 
        branch2.repository.get_transaction())[1] / 1024,
127
 
       ), out)
128
 
        self.assertEqual('', err)
129
 
 
130
 
        # Branch and bind to standalone, needs upgrade to metadir
131
 
        # (creates backup as unknown)
132
 
        branch1.bzrdir.sprout('bound')
133
 
        bzrlib.upgrade.upgrade('bound', bzrlib.bzrdir.BzrDirMetaFormat1())
134
 
        branch3 = bzrlib.bzrdir.BzrDir.open('bound').open_branch()
135
 
        branch3.bind(branch1)
136
 
        out, err = self.runbzr('info bound')
137
 
        self.assertEqualDiff(
138
 
"""Location:
139
 
       checkout root: %s
140
 
  checkout of branch: %s
141
 
 
142
 
Related branches:
143
 
  parent branch: %s
144
 
 
145
 
Format:
146
 
       control: Meta directory format 1
147
 
  working tree: Working tree format 3
148
 
        branch: Branch format 5
149
 
    repository: %s
150
 
 
151
 
In the working tree:
152
 
         1 unchanged
153
 
         0 modified
154
 
         0 added
155
 
         0 removed
156
 
         0 renamed
157
 
         1 unknown
158
 
         0 ignored
159
 
         0 versioned subdirectories
160
 
 
161
 
Branch history:
162
 
         1 revision
163
 
         0 days old
164
 
   first revision: %s
165
 
  latest revision: %s
166
 
 
167
 
Revision store:
168
 
         1 revision
169
 
         %d KiB
170
 
""" % (branch3.bzrdir.root_transport.base,
171
 
       branch1.bzrdir.root_transport.base,
172
 
       branch1.bzrdir.root_transport.base,
173
 
       branch3.repository._format.get_format_description(),
174
 
       datestring_first, datestring_first,
175
 
       # poking at _revision_store isn't all that clean, but neither is
176
 
       # having the ui test dependent on the exact overhead of a given store.
177
 
       branch3.repository._revision_store.total_size(
178
 
        branch3.repository.get_transaction())[1] / 1024,
179
 
       ), out)
180
 
        self.assertEqual('', err)
181
 
 
182
 
        # Checkout standalone (same as above, but does not have parent set)
183
 
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
184
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
185
 
        branch4 = bzrlib.bzrdir.BzrDir.create_branch_convenience('checkout')
186
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
187
 
        branch4.bind(branch1)
188
 
        branch4.bzrdir.open_workingtree().update()
189
 
        out, err = self.runbzr('info checkout --verbose')
190
 
        self.assertEqualDiff(
191
 
"""Location:
192
 
       checkout root: %s
193
 
  checkout of branch: %s
194
 
 
195
 
Format:
196
 
       control: Meta directory format 1
197
 
  working tree: Working tree format 3
198
 
        branch: Branch format 5
199
 
    repository: %s
200
 
 
201
 
In the working tree:
202
 
         1 unchanged
203
 
         0 modified
204
 
         0 added
205
 
         0 removed
206
 
         0 renamed
207
 
         0 unknown
208
 
         0 ignored
209
 
         0 versioned subdirectories
210
 
 
211
 
Branch history:
212
 
         1 revision
213
 
         1 committer
214
 
         0 days old
215
 
   first revision: %s
216
 
  latest revision: %s
217
 
 
218
 
Revision store:
219
 
         1 revision
220
 
         %d KiB
221
 
""" % (branch4.bzrdir.root_transport.base,
222
 
       branch1.bzrdir.root_transport.base,
223
 
       branch4.repository._format.get_format_description(),
224
 
       datestring_first, datestring_first,
225
 
       # poking at _revision_store isn't all that clean, but neither is
226
 
       # having the ui test dependent on the exact overhead of a given store.
227
 
       branch4.repository._revision_store.total_size(
228
 
        branch4.repository.get_transaction())[1] / 1024,
229
 
       ), out)
230
 
        self.assertEqual('', err)
231
 
 
232
 
        # Lightweight checkout (same as above, different branch and repository)
233
 
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
234
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
235
 
        transport.mkdir('lightcheckout')
236
 
        dir5 = bzrlib.bzrdir.BzrDirMetaFormat1().initialize('lightcheckout')
237
 
        bzrlib.branch.BranchReferenceFormat().initialize(dir5, branch1)
238
 
        dir5.create_workingtree()
239
 
        tree5 = dir5.open_workingtree()
240
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
241
 
        branch5 = tree5.branch
242
 
        out, err = self.runbzr('info lightcheckout')
243
 
        self.assertEqualDiff(
244
 
"""Location:
245
 
  light checkout root: %s
246
 
   checkout of branch: %s
247
 
 
248
 
Format:
249
 
       control: Meta directory format 1
250
 
  working tree: Working tree format 3
251
 
        branch: Branch format 4
252
 
    repository: Weave repository format 6
253
 
 
254
 
In the working tree:
255
 
         1 unchanged
256
 
         0 modified
257
 
         0 added
258
 
         0 removed
259
 
         0 renamed
260
 
         0 unknown
261
 
         0 ignored
262
 
         0 versioned subdirectories
263
 
 
264
 
Branch history:
265
 
         1 revision
266
 
         0 days old
267
 
   first revision: %s
268
 
  latest revision: %s
269
 
 
270
 
Revision store:
271
 
         1 revision
272
 
         0 KiB
273
 
""" % (tree5.bzrdir.root_transport.base,
274
 
       branch1.bzrdir.root_transport.base,
275
 
       datestring_first, datestring_first,
276
 
       ), out)
277
 
        self.assertEqual('', err)
278
 
 
279
 
        # Update initial standalone branch
280
 
        self.build_tree(['standalone/b'])
281
 
        tree1.add('b')
282
 
        tree1.commit('commit two')
283
 
        rev = branch1.repository.get_revision(branch1.revision_history()[-1])
284
 
        datestring_last = format_date(rev.timestamp, rev.timezone)
285
 
 
286
 
        # Out of date branched standalone branch will not be detected
287
 
        out, err = self.runbzr('info branch')
288
 
        self.assertEqualDiff(
289
 
"""Location:
290
 
  branch root: %s
291
 
 
292
 
Related branches:
293
 
      parent branch: %s
294
 
  publish to branch: %s
295
 
 
296
 
Format:
297
 
       control: All-in-one format 6
298
 
  working tree: Working tree format 2
299
 
        branch: Branch format 4
300
 
    repository: Weave repository format 6
301
 
 
302
 
In the working tree:
303
 
         1 unchanged
304
 
         0 modified
305
 
         0 added
306
 
         0 removed
307
 
         0 renamed
308
 
         0 unknown
309
 
         0 ignored
310
 
         0 versioned subdirectories
311
 
 
312
 
Branch history:
313
 
         1 revision
314
 
         0 days old
315
 
   first revision: %s
316
 
  latest revision: %s
317
 
 
318
 
Revision store:
319
 
         1 revision
320
 
         0 KiB
321
 
""" % (branch2.bzrdir.root_transport.base,
322
 
       branch1.bzrdir.root_transport.base,
323
 
       branch1.bzrdir.root_transport.base,
324
 
       datestring_first, datestring_first,
325
 
       ), out)
326
 
        self.assertEqual('', err)
327
 
 
328
 
        # Out of date bound branch
329
 
        out, err = self.runbzr('info bound')
330
 
        self.assertEqualDiff(
331
 
"""Location:
332
 
       checkout root: %s
333
 
  checkout of branch: %s
334
 
 
335
 
Related branches:
336
 
  parent branch: %s
337
 
 
338
 
Format:
339
 
       control: Meta directory format 1
340
 
  working tree: Working tree format 3
341
 
        branch: Branch format 5
342
 
    repository: %s
343
 
 
344
 
Branch is out of date: missing 1 revision.
345
 
 
346
 
In the working tree:
347
 
         1 unchanged
348
 
         0 modified
349
 
         0 added
350
 
         0 removed
351
 
         0 renamed
352
 
         1 unknown
353
 
         0 ignored
354
 
         0 versioned subdirectories
355
 
 
356
 
Branch history:
357
 
         1 revision
358
 
         0 days old
359
 
   first revision: %s
360
 
  latest revision: %s
361
 
 
362
 
Revision store:
363
 
         1 revision
364
 
         %d KiB
365
 
""" % (branch3.bzrdir.root_transport.base,
366
 
       branch1.bzrdir.root_transport.base,
367
 
       branch1.bzrdir.root_transport.base,
368
 
       branch3.repository._format.get_format_description(),
369
 
       datestring_first, datestring_first,
370
 
       # poking at _revision_store isn't all that clean, but neither is
371
 
       # having the ui test dependent on the exact overhead of a given store.
372
 
       branch3.repository._revision_store.total_size(
373
 
        branch3.repository.get_transaction())[1] / 1024,
374
 
       ), out)
375
 
        self.assertEqual('', err)
376
 
 
377
 
        # Out of date checkout
378
 
        out, err = self.runbzr('info checkout')
379
 
        self.assertEqualDiff(
380
 
"""Location:
381
 
       checkout root: %s
382
 
  checkout of branch: %s
383
 
 
384
 
Format:
385
 
       control: Meta directory format 1
386
 
  working tree: Working tree format 3
387
 
        branch: Branch format 5
388
 
    repository: %s
389
 
 
390
 
Branch is out of date: missing 1 revision.
391
 
 
392
 
In the working tree:
393
 
         1 unchanged
394
 
         0 modified
395
 
         0 added
396
 
         0 removed
397
 
         0 renamed
398
 
         0 unknown
399
 
         0 ignored
400
 
         0 versioned subdirectories
401
 
 
402
 
Branch history:
403
 
         1 revision
404
 
         0 days old
405
 
   first revision: %s
406
 
  latest revision: %s
407
 
 
408
 
Revision store:
409
 
         1 revision
410
 
         %d KiB
411
 
""" % (branch4.bzrdir.root_transport.base,
412
 
       branch1.bzrdir.root_transport.base,
413
 
       branch4.repository._format.get_format_description(),
414
 
       datestring_first, datestring_first,
415
 
       # poking at _revision_store isn't all that clean, but neither is
416
 
       # having the ui test dependent on the exact overhead of a given store.
417
 
       branch4.repository._revision_store.total_size(
418
 
        branch4.repository.get_transaction())[1] / 1024,
419
 
       ), out)
420
 
        self.assertEqual('', err)
421
 
 
422
 
        # Out of date lightweight checkout
423
 
        out, err = self.runbzr('info lightcheckout --verbose')
424
 
        self.assertEqualDiff(
425
 
"""Location:
426
 
  light checkout root: %s
427
 
   checkout of branch: %s
428
 
 
429
 
Format:
430
 
       control: Meta directory format 1
431
 
  working tree: Working tree format 3
432
 
        branch: Branch format 4
433
 
    repository: Weave repository format 6
434
 
 
435
 
Working tree is out of date: missing 1 revision.
436
 
 
437
 
In the working tree:
438
 
         1 unchanged
439
 
         0 modified
440
 
         0 added
441
 
         0 removed
442
 
         0 renamed
443
 
         0 unknown
444
 
         0 ignored
445
 
         0 versioned subdirectories
446
 
 
447
 
Branch history:
448
 
         2 revisions
449
 
         1 committer
450
 
         0 days old
451
 
   first revision: %s
452
 
  latest revision: %s
453
 
 
454
 
Revision store:
455
 
         2 revisions
456
 
         0 KiB
457
 
""" % (tree5.bzrdir.root_transport.base,
458
 
       branch1.bzrdir.root_transport.base,
459
 
       datestring_first, datestring_last,
460
 
       ), out)
461
 
        self.assertEqual('', err)
462
 
 
463
 
    def test_info_standalone_no_tree(self):
464
 
        # create standalone branch without a working tree
465
 
        branch = self.make_branch('branch')
466
 
        repo = branch.repository
467
 
        out, err = self.runbzr('info branch')
468
 
        self.assertEqualDiff(
469
 
"""Location:
470
 
  branch root: %s
471
 
 
472
 
Format:
473
 
       control: Meta directory format 1
474
 
        branch: Branch format 5
475
 
    repository: %s
476
 
 
477
 
Branch history:
478
 
         0 revisions
479
 
 
480
 
Revision store:
481
 
         0 revisions
482
 
         0 KiB
483
 
""" % (branch.bzrdir.root_transport.base,
484
 
       repo._format.get_format_description(),
485
 
       ), out)
486
 
        self.assertEqual('', err)
487
 
 
488
 
    def test_info_shared_repository(self):
489
 
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
490
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
491
 
        transport = self.get_transport()
492
 
 
493
 
        # Create shared repository
494
 
        repo = self.make_repository('repo', shared=True)
495
 
        repo.set_make_working_trees(False)
496
 
        out, err = self.runbzr('info repo')
497
 
        self.assertEqualDiff(
498
 
"""Location:
499
 
  shared repository: %s
500
 
 
501
 
Format:
502
 
       control: Meta directory format 1
503
 
    repository: %s
504
 
 
505
 
Revision store:
506
 
         0 revisions
507
 
         0 KiB
508
 
""" % (repo.bzrdir.root_transport.base,
509
 
       repo._format.get_format_description(),
510
 
       ), out)
511
 
        self.assertEqual('', err)
512
 
 
513
 
        # Create branch inside shared repository
514
 
        repo.bzrdir.root_transport.mkdir('branch')
515
 
        branch1 = repo.bzrdir.create_branch_convenience('repo/branch')
516
 
        out, err = self.runbzr('info repo/branch')
517
 
        self.assertEqualDiff(
518
 
"""Location:
519
 
  shared repository: %s
520
 
  repository branch: branch
521
 
 
522
 
Format:
523
 
       control: Meta directory format 1
524
 
        branch: Branch format 5
525
 
    repository: %s
526
 
 
527
 
Branch history:
528
 
         0 revisions
529
 
 
530
 
Revision store:
531
 
         0 revisions
532
 
         0 KiB
533
 
""" % (repo.bzrdir.root_transport.base,
534
 
       repo._format.get_format_description(),
535
 
       ), out)
536
 
        self.assertEqual('', err)
537
 
 
538
 
        # Create lightweight checkout
539
 
        transport.mkdir('tree')
540
 
        transport.mkdir('tree/lightcheckout')
541
 
        dir2 = bzrlib.bzrdir.BzrDirMetaFormat1().initialize('tree/lightcheckout')
542
 
        bzrlib.branch.BranchReferenceFormat().initialize(dir2, branch1)
543
 
        dir2.create_workingtree()
544
 
        tree2 = dir2.open_workingtree()
545
 
        branch2 = tree2.branch
546
 
        out, err = self.runbzr('info tree/lightcheckout')
547
 
        self.assertEqualDiff(
548
 
"""Location:
549
 
  light checkout root: %s
550
 
    shared repository: %s
551
 
    repository branch: branch
552
 
 
553
 
Format:
554
 
       control: Meta directory format 1
555
 
  working tree: Working tree format 3
556
 
        branch: Branch format 5
557
 
    repository: %s
558
 
 
559
 
In the working tree:
560
 
         0 unchanged
561
 
         0 modified
562
 
         0 added
563
 
         0 removed
564
 
         0 renamed
565
 
         0 unknown
566
 
         0 ignored
567
 
         0 versioned subdirectories
568
 
 
569
 
Branch history:
570
 
         0 revisions
571
 
 
572
 
Revision store:
573
 
         0 revisions
574
 
         0 KiB
575
 
""" % (tree2.bzrdir.root_transport.base,
576
 
       repo.bzrdir.root_transport.base,
577
 
       repo._format.get_format_description(),
578
 
       ), out)
579
 
        self.assertEqual('', err)
580
 
 
581
 
        # Create normal checkout
582
 
        branch3 = bzrlib.bzrdir.BzrDir.create_branch_convenience('tree/checkout')
583
 
        branch3.bind(branch1)
584
 
        tree3 = branch3.bzrdir.open_workingtree()
585
 
        tree3.update()
586
 
        out, err = self.runbzr('info tree/checkout --verbose')
587
 
        self.assertEqualDiff(
588
 
"""Location:
589
 
       checkout root: %s
590
 
  checkout of branch: %s
591
 
 
592
 
Format:
593
 
       control: Meta directory format 1
594
 
  working tree: Working tree format 3
595
 
        branch: Branch format 5
596
 
    repository: %s
597
 
 
598
 
In the working tree:
599
 
         0 unchanged
600
 
         0 modified
601
 
         0 added
602
 
         0 removed
603
 
         0 renamed
604
 
         0 unknown
605
 
         0 ignored
606
 
         0 versioned subdirectories
607
 
 
608
 
Branch history:
609
 
         0 revisions
610
 
         0 committers
611
 
 
612
 
Revision store:
613
 
         0 revisions
614
 
         0 KiB
615
 
""" % (branch3.bzrdir.root_transport.base,
616
 
       branch1.bzrdir.root_transport.base,
617
 
       repo._format.get_format_description(),
618
 
       ), out)
619
 
        self.assertEqual('', err)
620
 
 
621
 
        # Update lightweight checkout
622
 
        self.build_tree(['tree/lightcheckout/a'])
623
 
        tree2.add('a')
624
 
        tree2.commit('commit one')
625
 
        rev = repo.get_revision(branch2.revision_history()[0])
626
 
        datestring_first = format_date(rev.timestamp, rev.timezone)
627
 
        out, err = self.runbzr('info tree/lightcheckout --verbose')
628
 
        self.assertEqualDiff(
629
 
"""Location:
630
 
  light checkout root: %s
631
 
    shared repository: %s
632
 
    repository branch: branch
633
 
 
634
 
Format:
635
 
       control: Meta directory format 1
636
 
  working tree: Working tree format 3
637
 
        branch: Branch format 5
638
 
    repository: %s
639
 
 
640
 
In the working tree:
641
 
         1 unchanged
642
 
         0 modified
643
 
         0 added
644
 
         0 removed
645
 
         0 renamed
646
 
         0 unknown
647
 
         0 ignored
648
 
         0 versioned subdirectories
649
 
 
650
 
Branch history:
651
 
         1 revision
652
 
         1 committer
653
 
         0 days old
654
 
   first revision: %s
655
 
  latest revision: %s
656
 
 
657
 
Revision store:
658
 
         1 revision
659
 
         %d KiB
660
 
""" % (tree2.bzrdir.root_transport.base,
661
 
       repo.bzrdir.root_transport.base,
662
 
       repo._format.get_format_description(),
663
 
       datestring_first, datestring_first,
664
 
       # poking at _revision_store isn't all that clean, but neither is
665
 
       # having the ui test dependent on the exact overhead of a given store.
666
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
667
 
       ), out)
668
 
        self.assertEqual('', err)
669
 
 
670
 
        # Out of date checkout
671
 
        out, err = self.runbzr('info tree/checkout')
672
 
        self.assertEqualDiff(
673
 
"""Location:
674
 
       checkout root: %s
675
 
  checkout of branch: %s
676
 
 
677
 
Format:
678
 
       control: Meta directory format 1
679
 
  working tree: Working tree format 3
680
 
        branch: Branch format 5
681
 
    repository: %s
682
 
 
683
 
Branch is out of date: missing 1 revision.
684
 
 
685
 
In the working tree:
686
 
         0 unchanged
687
 
         0 modified
688
 
         0 added
689
 
         0 removed
690
 
         0 renamed
691
 
         0 unknown
692
 
         0 ignored
693
 
         0 versioned subdirectories
694
 
 
695
 
Branch history:
696
 
         0 revisions
697
 
 
698
 
Revision store:
699
 
         0 revisions
700
 
         0 KiB
701
 
""" % (tree3.bzrdir.root_transport.base,
702
 
       branch1.bzrdir.root_transport.base,
703
 
       repo._format.get_format_description(),
704
 
       ), out)
705
 
        self.assertEqual('', err)
706
 
 
707
 
        # Update checkout
708
 
        tree3.update()
709
 
        self.build_tree(['tree/checkout/b'])
710
 
        tree3.add('b')
711
 
        out, err = self.runbzr('info tree/checkout --verbose')
712
 
        self.assertEqualDiff(
713
 
"""Location:
714
 
       checkout root: %s
715
 
  checkout of branch: %s
716
 
 
717
 
Format:
718
 
       control: Meta directory format 1
719
 
  working tree: Working tree format 3
720
 
        branch: Branch format 5
721
 
    repository: %s
722
 
 
723
 
In the working tree:
724
 
         1 unchanged
725
 
         0 modified
726
 
         1 added
727
 
         0 removed
728
 
         0 renamed
729
 
         0 unknown
730
 
         0 ignored
731
 
         0 versioned subdirectories
732
 
 
733
 
Branch history:
734
 
         1 revision
735
 
         1 committer
736
 
         0 days old
737
 
   first revision: %s
738
 
  latest revision: %s
739
 
 
740
 
Revision store:
741
 
         1 revision
742
 
         %d KiB
743
 
""" % (tree3.bzrdir.root_transport.base, branch1.bzrdir.root_transport.base,
744
 
       repo._format.get_format_description(),
745
 
       datestring_first, datestring_first,
746
 
       # poking at _revision_store isn't all that clean, but neither is
747
 
       # having the ui test dependent on the exact overhead of a given store.
748
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
749
 
       ), out)
750
 
        self.assertEqual('', err)
751
 
        tree3.commit('commit two')
752
 
 
753
 
        # Out of date lightweight checkout
754
 
        rev = repo.get_revision(branch1.revision_history()[-1])
755
 
        datestring_last = format_date(rev.timestamp, rev.timezone)
756
 
        out, err = self.runbzr('info tree/lightcheckout --verbose')
757
 
        self.assertEqualDiff(
758
 
"""Location:
759
 
  light checkout root: %s
760
 
    shared repository: %s
761
 
    repository branch: branch
762
 
 
763
 
Format:
764
 
       control: Meta directory format 1
765
 
  working tree: Working tree format 3
766
 
        branch: Branch format 5
767
 
    repository: %s
768
 
 
769
 
Working tree is out of date: missing 1 revision.
770
 
 
771
 
In the working tree:
772
 
         1 unchanged
773
 
         0 modified
774
 
         0 added
775
 
         0 removed
776
 
         0 renamed
777
 
         0 unknown
778
 
         0 ignored
779
 
         0 versioned subdirectories
780
 
 
781
 
Branch history:
782
 
         2 revisions
783
 
         1 committer
784
 
         0 days old
785
 
   first revision: %s
786
 
  latest revision: %s
787
 
 
788
 
Revision store:
789
 
         2 revisions
790
 
         %d KiB
791
 
""" % (tree2.bzrdir.root_transport.base,
792
 
       repo.bzrdir.root_transport.base,
793
 
       repo._format.get_format_description(),
794
 
       datestring_first, datestring_last,
795
 
       # poking at _revision_store isn't all that clean, but neither is
796
 
       # having the ui test dependent on the exact overhead of a given store.
797
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
798
 
       ), out)
799
 
        self.assertEqual('', err)
800
 
 
801
 
        # Show info about shared branch
802
 
        out, err = self.runbzr('info repo/branch --verbose')
803
 
        self.assertEqualDiff(
804
 
"""Location:
805
 
  shared repository: %s
806
 
  repository branch: branch
807
 
 
808
 
Format:
809
 
       control: Meta directory format 1
810
 
        branch: Branch format 5
811
 
    repository: %s
812
 
 
813
 
Branch history:
814
 
         2 revisions
815
 
         1 committer
816
 
         0 days old
817
 
   first revision: %s
818
 
  latest revision: %s
819
 
 
820
 
Revision store:
821
 
         2 revisions
822
 
         %d KiB
823
 
""" % (repo.bzrdir.root_transport.base,
824
 
       repo._format.get_format_description(),
825
 
       datestring_first, datestring_last,
826
 
       # poking at _revision_store isn't all that clean, but neither is
827
 
       # having the ui test dependent on the exact overhead of a given store.
828
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
829
 
       ), out)
830
 
        self.assertEqual('', err)
831
 
 
832
 
        # Show info about repository with revisions
833
 
        out, err = self.runbzr('info repo')
834
 
        self.assertEqualDiff(
835
 
"""Location:
836
 
  shared repository: %s
837
 
 
838
 
Format:
839
 
       control: Meta directory format 1
840
 
    repository: %s
841
 
 
842
 
Revision store:
843
 
         2 revisions
844
 
         %d KiB
845
 
""" % (repo.bzrdir.root_transport.base,
846
 
       repo._format.get_format_description(),
847
 
       # poking at _revision_store isn't all that clean, but neither is
848
 
       # having the ui test dependent on the exact overhead of a given store.
849
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
850
 
       ), out)
851
 
        self.assertEqual('', err)
852
 
 
853
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
854
 
 
855
 
    def test_info_shared_repository_with_trees(self):
856
 
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
857
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
858
 
        transport = self.get_transport()
859
 
 
860
 
        # Create shared repository with working trees
861
 
        repo = self.make_repository('repo', shared=True)
862
 
        repo.set_make_working_trees(True)
863
 
        out, err = self.runbzr('info repo')
864
 
        self.assertEqualDiff(
865
 
"""Location:
866
 
  shared repository: %s
867
 
 
868
 
Format:
869
 
       control: Meta directory format 1
870
 
    repository: %s
871
 
 
872
 
Create working tree for new branches inside the repository.
873
 
 
874
 
Revision store:
875
 
         0 revisions
876
 
         0 KiB
877
 
""" % (repo.bzrdir.root_transport.base,
878
 
       repo._format.get_format_description(),
879
 
       ), out)
880
 
        self.assertEqual('', err)
881
 
 
882
 
        # Create two branches
883
 
        repo.bzrdir.root_transport.mkdir('branch1')
884
 
        branch1 = repo.bzrdir.create_branch_convenience('repo/branch1')
885
 
        branch2 = branch1.bzrdir.sprout('repo/branch2').open_branch()
886
 
 
887
 
        # Empty first branch
888
 
        out, err = self.runbzr('info repo/branch1 --verbose')
889
 
        self.assertEqualDiff(
890
 
"""Location:
891
 
    shared repository: %s
892
 
  repository checkout: branch1
893
 
 
894
 
Format:
895
 
       control: Meta directory format 1
896
 
  working tree: Working tree format 3
897
 
        branch: Branch format 5
898
 
    repository: %s
899
 
 
900
 
In the working tree:
901
 
         0 unchanged
902
 
         0 modified
903
 
         0 added
904
 
         0 removed
905
 
         0 renamed
906
 
         0 unknown
907
 
         0 ignored
908
 
         0 versioned subdirectories
909
 
 
910
 
Branch history:
911
 
         0 revisions
912
 
         0 committers
913
 
 
914
 
Revision store:
915
 
         0 revisions
916
 
         0 KiB
917
 
""" % (repo.bzrdir.root_transport.base,
918
 
       repo._format.get_format_description(),
919
 
       ), out)
920
 
        self.assertEqual('', err)
921
 
 
922
 
        # Update first branch
923
 
        self.build_tree(['repo/branch1/a'])
924
 
        tree1 = branch1.bzrdir.open_workingtree()
925
 
        tree1.add('a')
926
 
        tree1.commit('commit one')
927
 
        rev = repo.get_revision(branch1.revision_history()[0])
928
 
        datestring_first = format_date(rev.timestamp, rev.timezone)
929
 
        out, err = self.runbzr('info repo/branch1')
930
 
        self.assertEqualDiff(
931
 
"""Location:
932
 
    shared repository: %s
933
 
  repository checkout: branch1
934
 
 
935
 
Format:
936
 
       control: Meta directory format 1
937
 
  working tree: Working tree format 3
938
 
        branch: Branch format 5
939
 
    repository: %s
940
 
 
941
 
In the working tree:
942
 
         1 unchanged
943
 
         0 modified
944
 
         0 added
945
 
         0 removed
946
 
         0 renamed
947
 
         0 unknown
948
 
         0 ignored
949
 
         0 versioned subdirectories
950
 
 
951
 
Branch history:
952
 
         1 revision
953
 
         0 days old
954
 
   first revision: %s
955
 
  latest revision: %s
956
 
 
957
 
Revision store:
958
 
         1 revision
959
 
         %d KiB
960
 
""" % (repo.bzrdir.root_transport.base,
961
 
       repo._format.get_format_description(),
962
 
       datestring_first, datestring_first,
963
 
       # poking at _revision_store isn't all that clean, but neither is
964
 
       # having the ui test dependent on the exact overhead of a given store.
965
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
966
 
       ), out)
967
 
        self.assertEqual('', err)
968
 
 
969
 
        # Out of date second branch
970
 
        out, err = self.runbzr('info repo/branch2 --verbose')
971
 
        self.assertEqualDiff(
972
 
"""Location:
973
 
    shared repository: %s
974
 
  repository checkout: branch2
975
 
 
976
 
Related branches:
977
 
  parent branch: %s
978
 
 
979
 
Format:
980
 
       control: Meta directory format 1
981
 
  working tree: Working tree format 3
982
 
        branch: Branch format 5
983
 
    repository: %s
984
 
 
985
 
In the working tree:
986
 
         0 unchanged
987
 
         0 modified
988
 
         0 added
989
 
         0 removed
990
 
         0 renamed
991
 
         0 unknown
992
 
         0 ignored
993
 
         0 versioned subdirectories
994
 
 
995
 
Branch history:
996
 
         0 revisions
997
 
         0 committers
998
 
 
999
 
Revision store:
1000
 
         1 revision
1001
 
         %d KiB
1002
 
""" % (repo.bzrdir.root_transport.base,
1003
 
       branch1.bzrdir.root_transport.base,
1004
 
       repo._format.get_format_description(),
1005
 
       # poking at _revision_store isn't all that clean, but neither is
1006
 
       # having the ui test dependent on the exact overhead of a given store.
1007
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
1008
 
       ), out)
1009
 
        self.assertEqual('', err)
1010
 
 
1011
 
        # Update second branch
1012
 
        tree2 = branch2.bzrdir.open_workingtree()
1013
 
        tree2.pull(branch1)
1014
 
        out, err = self.runbzr('info repo/branch2')
1015
 
        self.assertEqualDiff(
1016
 
"""Location:
1017
 
    shared repository: %s
1018
 
  repository checkout: branch2
1019
 
 
1020
 
Related branches:
1021
 
  parent branch: %s
1022
 
 
1023
 
Format:
1024
 
       control: Meta directory format 1
1025
 
  working tree: Working tree format 3
1026
 
        branch: Branch format 5
1027
 
    repository: %s
1028
 
 
1029
 
In the working tree:
1030
 
         1 unchanged
1031
 
         0 modified
1032
 
         0 added
1033
 
         0 removed
1034
 
         0 renamed
1035
 
         0 unknown
1036
 
         0 ignored
1037
 
         0 versioned subdirectories
1038
 
 
1039
 
Branch history:
1040
 
         1 revision
1041
 
         0 days old
1042
 
   first revision: %s
1043
 
  latest revision: %s
1044
 
 
1045
 
Revision store:
1046
 
         1 revision
1047
 
         %d KiB
1048
 
""" % (repo.bzrdir.root_transport.base,
1049
 
       branch1.bzrdir.root_transport.base,
1050
 
       repo._format.get_format_description(),
1051
 
       datestring_first, datestring_first,
1052
 
       # poking at _revision_store isn't all that clean, but neither is
1053
 
       # having the ui test dependent on the exact overhead of a given store.
1054
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
1055
 
       ), out)
1056
 
        self.assertEqual('', err)
1057
 
 
1058
 
        # Show info about repository with revisions
1059
 
        out, err = self.runbzr('info repo')
1060
 
        self.assertEqualDiff(
1061
 
"""Location:
1062
 
  shared repository: %s
1063
 
 
1064
 
Format:
1065
 
       control: Meta directory format 1
1066
 
    repository: %s
1067
 
 
1068
 
Create working tree for new branches inside the repository.
1069
 
 
1070
 
Revision store:
1071
 
         1 revision
1072
 
         %d KiB
1073
 
""" % (repo.bzrdir.root_transport.base,
1074
 
       repo._format.get_format_description(),
1075
 
       # poking at _revision_store isn't all that clean, but neither is
1076
 
       # having the ui test dependent on the exact overhead of a given store.
1077
 
       repo._revision_store.total_size(repo.get_transaction())[1] / 1024,
1078
 
       ),
1079
 
       out)
1080
 
        self.assertEqual('', err)
1081
 
 
1082
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
1083
 
    
1084
 
    def test_info_shared_repository_with_tree_in_root(self):
1085
 
        old_format = bzrlib.bzrdir.BzrDirFormat.get_default_format()
1086
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(bzrlib.bzrdir.BzrDirMetaFormat1())
1087
 
        transport = self.get_transport()
1088
 
 
1089
 
        # Create shared repository with working trees
1090
 
        repo = self.make_repository('repo', shared=True)
1091
 
        repo.set_make_working_trees(True)
1092
 
        out, err = self.runbzr('info repo')
1093
 
        self.assertEqualDiff(
1094
 
"""Location:
1095
 
  shared repository: %s
1096
 
 
1097
 
Format:
1098
 
       control: Meta directory format 1
1099
 
    repository: %s
1100
 
 
1101
 
Create working tree for new branches inside the repository.
1102
 
 
1103
 
Revision store:
1104
 
         0 revisions
1105
 
         0 KiB
1106
 
""" % (repo.bzrdir.root_transport.base,
1107
 
       repo._format.get_format_description(),
1108
 
       ), out)
1109
 
        self.assertEqual('', err)
1110
 
 
1111
 
        # Create branch in root of repository
1112
 
        control = repo.bzrdir
1113
 
        branch = control.create_branch()
1114
 
        control.create_workingtree()
1115
 
        out, err = self.runbzr('info repo')
1116
 
        self.assertEqualDiff(
1117
 
"""Location:
1118
 
    shared repository: %s
1119
 
  repository checkout: .
1120
 
 
1121
 
Format:
1122
 
       control: Meta directory format 1
1123
 
  working tree: Working tree format 3
1124
 
        branch: Branch format 5
1125
 
    repository: %s
1126
 
 
1127
 
In the working tree:
1128
 
         0 unchanged
1129
 
         0 modified
1130
 
         0 added
1131
 
         0 removed
1132
 
         0 renamed
1133
 
         0 unknown
1134
 
         0 ignored
1135
 
         0 versioned subdirectories
1136
 
 
1137
 
Branch history:
1138
 
         0 revisions
1139
 
 
1140
 
Revision store:
1141
 
         0 revisions
1142
 
         0 KiB
1143
 
""" % (repo.bzrdir.root_transport.base,
1144
 
       repo._format.get_format_description(),
1145
 
       ), out)
1146
 
        self.assertEqual('', err)
1147
 
 
1148
 
        bzrlib.bzrdir.BzrDirFormat.set_default_format(old_format)
1149
 
 
1150
 
    def test_info_locking(self):
1151
 
        transport = self.get_transport()
1152
 
        # Create shared repository with a branch
1153
 
        repo = self.make_repository('repo', shared=True,
1154
 
                                    format=bzrlib.bzrdir.BzrDirMetaFormat1())
1155
 
        repo.set_make_working_trees(False)
1156
 
        repo.bzrdir.root_transport.mkdir('branch')
1157
 
        repo_branch = repo.bzrdir.create_branch_convenience('repo/branch',
1158
 
                                    format=bzrlib.bzrdir.BzrDirMetaFormat1())
1159
 
        # Do a heavy checkout
1160
 
        transport.mkdir('tree')
1161
 
        transport.mkdir('tree/checkout')
1162
 
        co_branch = bzrlib.bzrdir.BzrDir.create_branch_convenience('tree/checkout',
1163
 
                                    format=bzrlib.bzrdir.BzrDirMetaFormat1())
1164
 
        co_branch.bind(repo_branch)
1165
 
        # Do a light checkout of the heavy one
1166
 
        transport.mkdir('tree/lightcheckout')
1167
 
        lco_dir = bzrlib.bzrdir.BzrDirMetaFormat1().initialize('tree/lightcheckout')
1168
 
        bzrlib.branch.BranchReferenceFormat().initialize(lco_dir, co_branch)
1169
 
        lco_dir.create_workingtree()
1170
 
        lco_tree = lco_dir.open_workingtree()
1171
 
 
1172
 
        # Test all permutations of locking the working tree, branch and repository
1173
 
        # W B R
1174
 
 
1175
 
        # U U U
1176
 
        out, err = self.runbzr('info tree/lightcheckout')
1177
 
        self.assertEqualDiff(
1178
 
"""Location:
1179
 
  light checkout root: %s
1180
 
   checkout of branch: %s
1181
 
 
1182
 
Format:
1183
 
       control: Meta directory format 1
1184
 
  working tree: Working tree format 3
1185
 
        branch: Branch format 5
1186
 
    repository: %s
1187
 
 
1188
 
In the working tree:
1189
 
         0 unchanged
1190
 
         0 modified
1191
 
         0 added
1192
 
         0 removed
1193
 
         0 renamed
1194
 
         0 unknown
1195
 
         0 ignored
1196
 
         0 versioned subdirectories
1197
 
 
1198
 
Branch history:
1199
 
         0 revisions
1200
 
 
1201
 
Revision store:
1202
 
         0 revisions
1203
 
         0 KiB
1204
 
""" % (lco_tree.bzrdir.root_transport.base,
1205
 
       lco_tree.branch.bzrdir.root_transport.base,
1206
 
       lco_tree.branch.repository._format.get_format_description(),
1207
 
       ), out)
1208
 
        self.assertEqual('', err)
1209
 
        # U U L
1210
 
        lco_tree.branch.repository.lock_write()
1211
 
        out, err = self.runbzr('info tree/lightcheckout')
1212
 
        self.assertEqualDiff(
1213
 
"""Location:
1214
 
  light checkout root: %s
1215
 
   checkout of branch: %s
1216
 
 
1217
 
Format:
1218
 
       control: Meta directory format 1
1219
 
  working tree: Working tree format 3
1220
 
        branch: Branch format 5
1221
 
    repository: %s
1222
 
 
1223
 
Lock status:
1224
 
  working tree: unlocked
1225
 
        branch: unlocked
1226
 
    repository: locked
1227
 
 
1228
 
In the working tree:
1229
 
         0 unchanged
1230
 
         0 modified
1231
 
         0 added
1232
 
         0 removed
1233
 
         0 renamed
1234
 
         0 unknown
1235
 
         0 ignored
1236
 
         0 versioned subdirectories
1237
 
 
1238
 
Branch history:
1239
 
         0 revisions
1240
 
 
1241
 
Revision store:
1242
 
         0 revisions
1243
 
         0 KiB
1244
 
""" % (lco_tree.bzrdir.root_transport.base,
1245
 
       lco_tree.branch.bzrdir.root_transport.base,
1246
 
       lco_tree.branch.repository._format.get_format_description(),
1247
 
       ), out)
1248
 
        self.assertEqual('', err)
1249
 
        lco_tree.branch.repository.unlock()
1250
 
        # U L L
1251
 
        lco_tree.branch.lock_write()
1252
 
        out, err = self.runbzr('info tree/lightcheckout')
1253
 
        self.assertEqualDiff(
1254
 
"""Location:
1255
 
  light checkout root: %s
1256
 
   checkout of branch: %s
1257
 
 
1258
 
Format:
1259
 
       control: Meta directory format 1
1260
 
  working tree: Working tree format 3
1261
 
        branch: Branch format 5
1262
 
    repository: %s
1263
 
 
1264
 
Lock status:
1265
 
  working tree: unlocked
1266
 
        branch: locked
1267
 
    repository: locked
1268
 
 
1269
 
In the working tree:
1270
 
         0 unchanged
1271
 
         0 modified
1272
 
         0 added
1273
 
         0 removed
1274
 
         0 renamed
1275
 
         0 unknown
1276
 
         0 ignored
1277
 
         0 versioned subdirectories
1278
 
 
1279
 
Branch history:
1280
 
         0 revisions
1281
 
 
1282
 
Revision store:
1283
 
         0 revisions
1284
 
         0 KiB
1285
 
""" % (lco_tree.bzrdir.root_transport.base,
1286
 
       lco_tree.branch.bzrdir.root_transport.base,
1287
 
       lco_tree.branch.repository._format.get_format_description(),
1288
 
       ), out)
1289
 
        self.assertEqual('', err)
1290
 
        lco_tree.branch.unlock()
1291
 
        # L L L
1292
 
        lco_tree.lock_write()
1293
 
        out, err = self.runbzr('info tree/lightcheckout')
1294
 
        self.assertEqualDiff(
1295
 
"""Location:
1296
 
  light checkout root: %s
1297
 
   checkout of branch: %s
1298
 
 
1299
 
Format:
1300
 
       control: Meta directory format 1
1301
 
  working tree: Working tree format 3
1302
 
        branch: Branch format 5
1303
 
    repository: %s
1304
 
 
1305
 
Lock status:
1306
 
  working tree: locked
1307
 
        branch: locked
1308
 
    repository: locked
1309
 
 
1310
 
In the working tree:
1311
 
         0 unchanged
1312
 
         0 modified
1313
 
         0 added
1314
 
         0 removed
1315
 
         0 renamed
1316
 
         0 unknown
1317
 
         0 ignored
1318
 
         0 versioned subdirectories
1319
 
 
1320
 
Branch history:
1321
 
         0 revisions
1322
 
 
1323
 
Revision store:
1324
 
         0 revisions
1325
 
         0 KiB
1326
 
""" % (lco_tree.bzrdir.root_transport.base,
1327
 
       lco_tree.branch.bzrdir.root_transport.base,
1328
 
       lco_tree.branch.repository._format.get_format_description(),
1329
 
       ), out)
1330
 
        self.assertEqual('', err)
1331
 
        lco_tree.unlock()
1332
 
        # L L U
1333
 
        lco_tree.lock_write()
1334
 
        lco_tree.branch.repository.unlock()
1335
 
        out, err = self.runbzr('info tree/lightcheckout')
1336
 
        self.assertEqualDiff(
1337
 
"""Location:
1338
 
  light checkout root: %s
1339
 
   checkout of branch: %s
1340
 
 
1341
 
Format:
1342
 
       control: Meta directory format 1
1343
 
  working tree: Working tree format 3
1344
 
        branch: Branch format 5
1345
 
    repository: %s
1346
 
 
1347
 
Lock status:
1348
 
  working tree: locked
1349
 
        branch: locked
1350
 
    repository: unlocked
1351
 
 
1352
 
In the working tree:
1353
 
         0 unchanged
1354
 
         0 modified
1355
 
         0 added
1356
 
         0 removed
1357
 
         0 renamed
1358
 
         0 unknown
1359
 
         0 ignored
1360
 
         0 versioned subdirectories
1361
 
 
1362
 
Branch history:
1363
 
         0 revisions
1364
 
 
1365
 
Revision store:
1366
 
         0 revisions
1367
 
         0 KiB
1368
 
""" % (lco_tree.bzrdir.root_transport.base,
1369
 
       lco_tree.branch.bzrdir.root_transport.base,
1370
 
       lco_tree.branch.repository._format.get_format_description(),
1371
 
       ), out)
1372
 
        self.assertEqual('', err)
1373
 
        lco_tree.branch.repository.lock_write()
1374
 
        lco_tree.unlock()
1375
 
        # L U U
1376
 
        lco_tree.lock_write()
1377
 
        lco_tree.branch.unlock()
1378
 
        out, err = self.runbzr('info tree/lightcheckout')
1379
 
        self.assertEqualDiff(
1380
 
"""Location:
1381
 
  light checkout root: %s
1382
 
   checkout of branch: %s
1383
 
 
1384
 
Format:
1385
 
       control: Meta directory format 1
1386
 
  working tree: Working tree format 3
1387
 
        branch: Branch format 5
1388
 
    repository: %s
1389
 
 
1390
 
Lock status:
1391
 
  working tree: locked
1392
 
        branch: unlocked
1393
 
    repository: unlocked
1394
 
 
1395
 
In the working tree:
1396
 
         0 unchanged
1397
 
         0 modified
1398
 
         0 added
1399
 
         0 removed
1400
 
         0 renamed
1401
 
         0 unknown
1402
 
         0 ignored
1403
 
         0 versioned subdirectories
1404
 
 
1405
 
Branch history:
1406
 
         0 revisions
1407
 
 
1408
 
Revision store:
1409
 
         0 revisions
1410
 
         0 KiB
1411
 
""" % (lco_tree.bzrdir.root_transport.base,
1412
 
       lco_tree.branch.bzrdir.root_transport.base,
1413
 
       lco_tree.branch.repository._format.get_format_description(),
1414
 
       ), out)
1415
 
        self.assertEqual('', err)
1416
 
        lco_tree.branch.lock_write()
1417
 
        lco_tree.unlock()
1418
 
        # L U L
1419
 
        lco_tree.lock_write()
1420
 
        lco_tree.branch.unlock()
1421
 
        lco_tree.branch.repository.lock_write()
1422
 
        out, err = self.runbzr('info tree/lightcheckout')
1423
 
        self.assertEqualDiff(
1424
 
"""Location:
1425
 
  light checkout root: %s
1426
 
   checkout of branch: %s
1427
 
 
1428
 
Format:
1429
 
       control: Meta directory format 1
1430
 
  working tree: Working tree format 3
1431
 
        branch: Branch format 5
1432
 
    repository: %s
1433
 
 
1434
 
Lock status:
1435
 
  working tree: locked
1436
 
        branch: unlocked
1437
 
    repository: locked
1438
 
 
1439
 
In the working tree:
1440
 
         0 unchanged
1441
 
         0 modified
1442
 
         0 added
1443
 
         0 removed
1444
 
         0 renamed
1445
 
         0 unknown
1446
 
         0 ignored
1447
 
         0 versioned subdirectories
1448
 
 
1449
 
Branch history:
1450
 
         0 revisions
1451
 
 
1452
 
Revision store:
1453
 
         0 revisions
1454
 
         0 KiB
1455
 
""" % (lco_tree.bzrdir.root_transport.base,
1456
 
       lco_tree.branch.bzrdir.root_transport.base,
1457
 
       lco_tree.branch.repository._format.get_format_description(),
1458
 
       ), out)
1459
 
        self.assertEqual('', err)
1460
 
        lco_tree.branch.repository.unlock()
1461
 
        lco_tree.branch.lock_write()
1462
 
        lco_tree.unlock()
1463
 
        # U L U
1464
 
        lco_tree.branch.lock_write()
1465
 
        lco_tree.branch.repository.unlock()
1466
 
        out, err = self.runbzr('info tree/lightcheckout')
1467
 
        self.assertEqualDiff(
1468
 
"""Location:
1469
 
  light checkout root: %s
1470
 
   checkout of branch: %s
1471
 
 
1472
 
Format:
1473
 
       control: Meta directory format 1
1474
 
  working tree: Working tree format 3
1475
 
        branch: Branch format 5
1476
 
    repository: %s
1477
 
 
1478
 
Lock status:
1479
 
  working tree: unlocked
1480
 
        branch: locked
1481
 
    repository: unlocked
1482
 
 
1483
 
In the working tree:
1484
 
         0 unchanged
1485
 
         0 modified
1486
 
         0 added
1487
 
         0 removed
1488
 
         0 renamed
1489
 
         0 unknown
1490
 
         0 ignored
1491
 
         0 versioned subdirectories
1492
 
 
1493
 
Branch history:
1494
 
         0 revisions
1495
 
 
1496
 
Revision store:
1497
 
         0 revisions
1498
 
         0 KiB
1499
 
""" % (lco_tree.bzrdir.root_transport.base,
1500
 
       lco_tree.branch.bzrdir.root_transport.base,
1501
 
       lco_tree.branch.repository._format.get_format_description(),
1502
 
       ), out)
1503
 
        self.assertEqual('', err)
1504
 
        lco_tree.branch.repository.lock_write()
1505
 
        lco_tree.branch.unlock()
1506
 
 
1507
 
    def test_info_locking_oslocks(self):
1508
 
        tree = self.make_branch_and_tree('branch',
1509
 
                                         format=bzrlib.bzrdir.BzrDirFormat6())
1510
 
 
1511
 
        # Test all permutations of locking the working tree, branch and repository
1512
 
        # XXX: Well not yet, as we can't query oslocks yet. Currently, it's
1513
 
        # implemented by raising NotImplementedError and get_physical_lock_status()
1514
 
        # always returns false. This makes bzr info hide the lock status.  (Olaf)
1515
 
        # W B R
1516
 
 
1517
 
        # U U U
1518
 
        out, err = self.runbzr('info branch')
1519
 
        self.assertEqualDiff(
1520
 
"""Location:
1521
 
  branch root: %s
1522
 
 
1523
 
Format:
1524
 
       control: All-in-one format 6
1525
 
  working tree: Working tree format 2
1526
 
        branch: Branch format 4
1527
 
    repository: %s
1528
 
 
1529
 
In the working tree:
1530
 
         0 unchanged
1531
 
         0 modified
1532
 
         0 added
1533
 
         0 removed
1534
 
         0 renamed
1535
 
         0 unknown
1536
 
         0 ignored
1537
 
         0 versioned subdirectories
1538
 
 
1539
 
Branch history:
1540
 
         0 revisions
1541
 
 
1542
 
Revision store:
1543
 
         0 revisions
1544
 
         0 KiB
1545
 
""" % (tree.bzrdir.root_transport.base,
1546
 
       tree.branch.repository._format.get_format_description(),
1547
 
       ), out)
1548
 
        self.assertEqual('', err)
1549
 
        # L L L
1550
 
        tree.lock_write()
1551
 
        out, err = self.runbzr('info branch')
1552
 
        self.assertEqualDiff(
1553
 
"""Location:
1554
 
  branch root: %s
1555
 
 
1556
 
Format:
1557
 
       control: All-in-one format 6
1558
 
  working tree: Working tree format 2
1559
 
        branch: Branch format 4
1560
 
    repository: %s
1561
 
 
1562
 
In the working tree:
1563
 
         0 unchanged
1564
 
         0 modified
1565
 
         0 added
1566
 
         0 removed
1567
 
         0 renamed
1568
 
         0 unknown
1569
 
         0 ignored
1570
 
         0 versioned subdirectories
1571
 
 
1572
 
Branch history:
1573
 
         0 revisions
1574
 
 
1575
 
Revision store:
1576
 
         0 revisions
1577
 
         0 KiB
1578
 
""" % (tree.bzrdir.root_transport.base,
1579
 
       tree.branch.repository._format.get_format_description(),
1580
 
       ), out)
1581
 
        self.assertEqual('', err)
1582
 
        tree.unlock()