/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/commit.py

  • Committer: NamNguyen
  • Date: 2007-08-27 08:38:37 UTC
  • mto: (2789.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 2790.
  • Revision ID: namnguyen-20070827083837-t6a5oewzvdct6j8i
branch.py:

   * ``pre_commit`` hook's signature is changed to::

   hook(local, master, old_revno, old_revid, future_revno, future_revid,
        tree_delta, future_tree)

   * made it clear that pre_commit hooks must not modify neither
     the delta nor future_tree

commit.py:

   * replaced ``affected_ids`` with ``tree_delta``

   * only compute ``future_tree`` and ``tree_delta`` once

Show diffs side-by-side

added added

removed removed

Lines of Context:
235
235
        self.committer = committer
236
236
        self.strict = strict
237
237
        self.verbose = verbose
238
 
        self.affected_ids = {}
239
238
 
240
239
        if reporter is None and self.reporter is None:
241
240
            self.reporter = NullCommitReporter()
473
472
 
474
473
    def _process_pre_hooks(self, old_revno, new_revno):
475
474
        """Process any registered pre commit hooks."""
476
 
        self._set_progress_stage("Running pre commit hooks")
 
475
        self._set_progress_stage("Running pre_commit hooks")
477
476
        self._process_hooks("pre_commit", old_revno, new_revno)
478
477
 
479
478
    def _process_post_hooks(self, old_revno, new_revno):
480
479
        """Process any registered post commit hooks."""
481
480
        # Process the post commit hooks, if any
482
 
        self._set_progress_stage("Running post commit hooks")
 
481
        self._set_progress_stage("Running post_commit hooks")
483
482
        # old style commit hooks - should be deprecated ? (obsoleted in
484
483
        # 0.15)
485
484
        if self.config.post_commit() is not None:
511
510
            old_revid = self.parents[0]
512
511
        else:
513
512
            old_revid = bzrlib.revision.NULL_REVISION
514
 
            
 
513
        
 
514
        if hook_name == "pre_commit":
 
515
            future_tree = self.builder.revision_tree()
 
516
            tree_delta = future_tree.changes_from(self.basis_tree,
 
517
                                             include_root=True)
 
518
        
515
519
        for hook in Branch.hooks[hook_name]:
516
520
            # show the running hook in the progress bar. As hooks may
517
521
            # end up doing nothing (e.g. because they are not configured by
519
523
            # actions - its up to each plugin to show a UI if it want's to
520
524
            # (such as 'Emailing diff to foo@example.com').
521
525
            self.pb_stage_name = "Running %s hooks [%s]" % \
522
 
                (hook_name.replace('_', ' '), Branch.hooks.get_hook_name(hook))
 
526
                (hook_name, Branch.hooks.get_hook_name(hook))
523
527
            self._emit_progress()
524
528
            if 'hooks' in debug.debug_flags:
525
529
                mutter("Invoking commit hook: %r", hook)
529
533
            elif hook_name == "pre_commit":
530
534
                hook(hook_local, hook_master,
531
535
                     old_revno, old_revid, new_revno, self.rev_id,
532
 
                     self.affected_ids, self.builder.revision_tree())
 
536
                     tree_delta, future_tree)
533
537
 
534
538
    def _cleanup(self):
535
539
        """Cleanup any open locks, progress bars etc."""
649
653
        for path, ie in self.basis_inv.iter_entries():
650
654
            if ie.file_id not in self.builder.new_inventory:
651
655
                self.reporter.deleted(path)
652
 
                self.affected_ids.setdefault('deleted', []).append(ie.file_id)
653
656
 
654
657
    def _populate_from_inventory(self, specific_files):
655
658
        """Populate the CommitBuilder by walking the working tree inventory."""
766
769
        else:
767
770
            basis_ie = None
768
771
        change = ie.describe_change(basis_ie, ie)
769
 
        if change != 'unchanged' and path != '':
770
 
            self.affected_ids.setdefault(change, []).append(ie.file_id)
771
772
        if change in (InventoryEntry.RENAMED, 
772
773
            InventoryEntry.MODIFIED_AND_RENAMED):
773
774
            old_path = self.basis_inv.id2path(ie.file_id)