libbe.rcs.RCS.commit() now actually calls .pre/postcommit().
authorW. Trevor King <wking@drexel.edu>
Thu, 23 Jul 2009 15:43:04 +0000 (11:43 -0400)
committerW. Trevor King <wking@drexel.edu>
Thu, 23 Jul 2009 15:43:04 +0000 (11:43 -0400)
It hadn't before, which defeats the Pu purpose of hook functions.
This hand't caused any problems though, since only libbe.bzr defined a
postcommit() and there were no precommit() definitions.

Bzr's postcommit() had been to auto-merge from the default merge
source.  Yikes!  Removed that ;).

libbe/bzr.py
libbe/rcs.py

index b33292c1ef1e1bbf676e21622af637c937af197e..d7cd1e5693b1b6248d4885aa615a6ae947262de9 100644 (file)
@@ -93,20 +93,6 @@ class Bzr(RCS):
         assert len(match.groups()) == 1
         revision = match.groups()[0]
         return revision
-    def postcommit(self):
-        try:
-            self._u_invoke_client('merge')
-        except rcs.CommandError, e:
-            if ('No merge branch known or specified' in e.err_str or
-                'No merge location known or specified' in e.err_str):
-                pass
-            else:
-                self._u_invoke_client('revert',  '--no-backup', 
-                                   directory=directory)
-                self._u_invoke_client('resolve', '--all', directory=directory)
-                raise
-        if len(self._u_invoke_client('status', directory=directory)[1]) > 0:
-            self.commit('Merge from upstream')
 
 \f    
 rcs.make_rcs_testcase_subclasses(Bzr, sys.modules[__name__])
index 1e1cfa7b7f73e3c16133e3db8d91f7541d194a3e..294b8e063e9802cbfeeb1935f445134678ba6f8a 100644 (file)
@@ -398,14 +398,22 @@ class RCS(object):
             temp_file = os.fdopen(descriptor, 'wb')
             temp_file.write(summary)
             temp_file.flush()
+            self.precommit()
             revision = self._rcs_commit(filename, allow_empty=allow_empty)
             temp_file.close()
+            self.postcommit()
         finally:
             os.remove(filename)
         return revision
-    def precommit(self, directory):
+    def precommit(self):
+        """
+        Executed before all attempted commits.
+        """
         pass
-    def postcommit(self, directory):
+    def postcommit(self):
+        """
+        Only executed after successful commits.
+        """
         pass
     def _u_any_in_string(self, list, string):
         """