~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: aaron.bentley at utoronto
  • Date: 2005-08-27 04:42:41 UTC
  • mfrom: (1092.1.43)
  • mto: (1185.3.4)
  • mto: This revision was merged to the branch mainline in revision 1178.
  • Revision ID: aaron.bentley@utoronto.ca-20050827044241-23d676133b9fc981
Merge of robertc@robertcollins.net-20050826013321-52eee1f1da679ee9

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
    >>> i.path2id('')
56
56
    'TREE_ROOT'
57
57
    >>> i.add(InventoryEntry('123', 'src', 'directory', ROOT_ID))
 
58
    InventoryEntry('123', 'src', kind='directory', parent_id='TREE_ROOT')
58
59
    >>> i.add(InventoryEntry('2323', 'hello.c', 'file', parent_id='123'))
 
60
    InventoryEntry('2323', 'hello.c', kind='file', parent_id='123')
59
61
    >>> for j in i.iter_entries():
60
62
    ...   print j
61
63
    ... 
66
68
    ...
67
69
    BzrError: inventory already contains entry with id {2323}
68
70
    >>> i.add(InventoryEntry('2324', 'bye.c', 'file', '123'))
 
71
    InventoryEntry('2324', 'bye.c', kind='file', parent_id='123')
69
72
    >>> i.add(InventoryEntry('2325', 'wibble', 'directory', '123'))
 
73
    InventoryEntry('2325', 'wibble', kind='directory', parent_id='123')
70
74
    >>> i.path2id('src/wibble')
71
75
    '2325'
72
76
    >>> '2325' in i
73
77
    True
74
78
    >>> i.add(InventoryEntry('2326', 'wibble.c', 'file', '2325'))
 
79
    InventoryEntry('2326', 'wibble.c', kind='file', parent_id='2325')
75
80
    >>> i['2326']
76
81
    InventoryEntry('2326', 'wibble.c', kind='file', parent_id='2325')
77
82
    >>> for j in i.iter_entries():
268
273
 
269
274
    >>> inv = Inventory()
270
275
    >>> inv.add(InventoryEntry('123-123', 'hello.c', 'file', ROOT_ID))
 
276
    InventoryEntry('123-123', 'hello.c', kind='file', parent_id='TREE_ROOT')
271
277
    >>> inv['123-123'].name
272
278
    'hello.c'
273
279
 
284
290
    ['hello.c']
285
291
    >>> inv = Inventory('TREE_ROOT-12345678-12345678')
286
292
    >>> inv.add(InventoryEntry('123-123', 'hello.c', 'file', ROOT_ID))
 
293
    InventoryEntry('123-123', 'hello.c', kind='file', parent_id='TREE_ROOT-12345678-12345678')
287
294
    """
288
295
    def __init__(self, root_id=ROOT_ID):
289
296
        """Create or read an inventory.
371
378
 
372
379
        >>> inv = Inventory()
373
380
        >>> inv.add(InventoryEntry('123', 'foo.c', 'file', ROOT_ID))
 
381
        InventoryEntry('123', 'foo.c', kind='file', parent_id='TREE_ROOT')
374
382
        >>> '123' in inv
375
383
        True
376
384
        >>> '456' in inv
384
392
 
385
393
        >>> inv = Inventory()
386
394
        >>> inv.add(InventoryEntry('123123', 'hello.c', 'file', ROOT_ID))
 
395
        InventoryEntry('123123', 'hello.c', kind='file', parent_id='TREE_ROOT')
387
396
        >>> inv['123123'].name
388
397
        'hello.c'
389
398
        """
425
434
 
426
435
        self._byid[entry.file_id] = entry
427
436
        parent.children[entry.name] = entry
 
437
        return entry
428
438
 
429
439
 
430
440
    def add_path(self, relpath, kind, file_id=None):
455
465
 
456
466
        >>> inv = Inventory()
457
467
        >>> inv.add(InventoryEntry('123', 'foo.c', 'file', ROOT_ID))
 
468
        InventoryEntry('123', 'foo.c', kind='file', parent_id='TREE_ROOT')
458
469
        >>> '123' in inv
459
470
        True
460
471
        >>> del inv['123']
494
505
        
495
506
        >>> inv = Inventory()
496
507
        >>> inv.add(InventoryEntry('foo.c-123981239', 'foo.c', 'file', ROOT_ID))
 
508
        InventoryEntry('foo.c-123981239', 'foo.c', kind='file', parent_id='TREE_ROOT')
497
509
        >>> elt = inv.to_element()
498
510
        >>> inv2 = Inventory.from_element(elt)
499
511
        >>> inv2 == inv
521
533
        >>> i1 == i2
522
534
        True
523
535
        >>> i1.add(InventoryEntry('123', 'foo', 'file', ROOT_ID))
 
536
        InventoryEntry('123', 'foo', kind='file', parent_id='TREE_ROOT')
524
537
        >>> i1 == i2
525
538
        False
526
539
        >>> i2.add(InventoryEntry('123', 'foo', 'file', ROOT_ID))
 
540
        InventoryEntry('123', 'foo', kind='file', parent_id='TREE_ROOT')
527
541
        >>> i1 == i2
528
542
        True
529
543
        """
644
658
 
645
659
 
646
660
 
647
 
_NAME_RE = re.compile(r'^[^/\\]+$')
 
661
_NAME_RE = None
648
662
 
649
663
def is_valid_name(name):
 
664
    global _NAME_RE
 
665
    if _NAME_RE == None:
 
666
        _NAME_RE = re.compile(r'^[^/\\]+$')
 
667
        
650
668
    return bool(_NAME_RE.match(name))