~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repository.py

  • Committer: Robert Collins
  • Date: 2007-09-20 07:59:48 UTC
  • mto: (2840.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 2842.
  • Revision ID: robertc@robertcollins.net-20070920075948-6f32d46hr3oyw4zb
Review feedback, and fix pointless commits with nested trees to raise PointlessCommit appropriately.

Show diffs side-by-side

added added

removed removed

Lines of Context:
70
70
    
71
71
    # all clients should supply tree roots.
72
72
    record_root_entry = True
 
73
    # the default CommitBuilder does not manage trees whose root is versioned.
 
74
    _versioned_root = False
73
75
 
74
76
    def __init__(self, repository, parents, config, timestamp=None, 
75
77
                 timezone=None, committer=None, revprops=None, 
191
193
        :param parent_invs: The inventories of the parent revisions of the
192
194
            commit.
193
195
        :param tree: The tree that is being committed.
194
 
        :return: True if the root entry is versioned properly.
195
196
        """
196
197
        if ie.parent_id is not None:
197
198
            # if ie is not root, add a root automatically.
205
206
            # serializing out to disk and back in root.revision is always
206
207
            # _new_revision_id
207
208
            ie.revision = self._new_revision_id
208
 
        return False
209
209
 
210
210
    def record_entry_contents(self, ie, parent_invs, path, tree):
211
211
        """Record the content of ie from tree into the commit if needed.
223
223
            will not return True.)
224
224
        """
225
225
        if self.new_inventory.root is None:
226
 
            self._versioned_root = self._check_root(ie, parent_invs, tree)
 
226
            self._check_root(ie, parent_invs, tree)
227
227
        self.new_inventory.add(ie)
228
228
 
229
229
        # ie.revision is always None if the InventoryEntry is considered
321
321
class RootCommitBuilder(CommitBuilder):
322
322
    """This commitbuilder actually records the root id"""
323
323
    
 
324
    # the root entry gets versioned properly by this builder.
 
325
    _versioned_root = False
 
326
 
324
327
    def _check_root(self, ie, parent_invs, tree):
325
328
        """Helper for record_entry_contents.
326
329
 
328
331
        :param parent_invs: The inventories of the parent revisions of the
329
332
            commit.
330
333
        :param tree: The tree that is being committed.
331
 
        :return: True if the root entry is versioned properly.
332
334
        """
333
335
        # ie must be root for this builder
334
336
        assert ie.parent_id is None
335
 
        return True
336
337
 
337
338
 
338
339
######################################################################