~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/changeset/read_changeset.py

  • Committer: Aaron Bentley
  • Date: 2006-05-19 12:09:05 UTC
  • mto: (1185.82.108 w-changeset)
  • mto: This revision was merged to the branch mainline in revision 1738.
  • Revision ID: aaron.bentley@utoronto.ca-20060519120905-e96996d16777e5ea
Move message to top, revision-id to footer

Show diffs side-by-side

added added

removed removed

Lines of Context:
400
400
            raise MalformedHeader('Did not find an opening header')
401
401
 
402
402
    def _read_revision_header(self):
 
403
        self.info.revisions.append(RevisionInfo(None))
403
404
        for line in self._next():
404
405
            # The bzr header is terminated with a blank line
405
406
            # which does not start with '#'
443
444
        if key is None:
444
445
            return
445
446
 
446
 
        if key == 'revision_id':
447
 
            self._read_revision(value)
 
447
        revision_info = self.info.revisions[-1]
 
448
        if hasattr(revision_info, key):
 
449
            if getattr(revision_info, key) is None:
 
450
                setattr(revision_info, key, value)
 
451
            else:
 
452
                raise MalformedHeader('Duplicated Key: %s' % key)
448
453
        else:
449
 
            revision_info = self.info.revisions[-1]
450
 
            if hasattr(revision_info, key):
451
 
                if getattr(revision_info, key) is None:
452
 
                    setattr(revision_info, key, value)
453
 
                else:
454
 
                    raise MalformedHeader('Duplicated Key: %s' % key)
455
 
            else:
456
 
                # What do we do with a key we don't recognize
457
 
                raise MalformedHeader('Unknown Key: "%s"' % key)
458
 
        
 
454
            # What do we do with a key we don't recognize
 
455
            raise MalformedHeader('Unknown Key: "%s"' % key)
 
456
    
459
457
    def _read_many(self, indent):
460
458
        """If a line ends with no entry, that means that it should be
461
459
        followed with multiple lines of values.
517
515
        assert self.info.revisions[-1].tree_actions is None
518
516
        self.info.revisions[-1].tree_actions = revision_actions
519
517
 
520
 
    def _read_revision(self, revision_id):
521
 
        """Revision entries have extra information associated.
522
 
        """
523
 
        rev_info = RevisionInfo(revision_id)
524
 
        start = '#    '
525
 
        for line in self._next():
526
 
            key,value = self._read_next_entry(line, indent=1)
527
 
            #if key is None:
528
 
            #    continue
529
 
            if hasattr(rev_info, key):
530
 
                if getattr(rev_info, key) is None:
531
 
                    setattr(rev_info, key, value)
532
 
                else:
533
 
                    raise MalformedHeader('Duplicated Key: %s' % key)
534
 
            else:
535
 
                # What do we do with a key we don't recognize
536
 
                raise MalformedHeader('Unknown Key: %s' % key)
537
 
 
538
 
            if self._next_line is None or not self._next_line.startswith(start):
539
 
                break
540
 
 
541
 
        self.info.revisions.append(rev_info)
542
 
 
543
518
    def _read_footer(self):
544
519
        """Read the rest of the meta information.
545
520