~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: Aaron Bentley
  • Date: 2005-08-25 13:10:25 UTC
  • mfrom: (974.1.38)
  • mto: (1092.1.42) (1185.3.4)
  • mto: This revision was merged to the branch mainline in revision 1178.
  • Revision ID: abentley@panoramicfeedback.com-20050825131025-2aa94bcbbd646a00
Fixed return value when not an ImmutableStore

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