--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/logging.py Fri Feb 20 15:19:51 2009 +0000
@@ -0,0 +1,31 @@
+# Copyright 2008-2009 LShift Ltd
+#
+# Authors:
+# Paul Crowley <paul@lshift.net>
+#
+# This software may be used and distributed according to the terms
+# of the GNU General Public License, incorporated herein by reference.
+
+from mercurial.i18n import _
+import mercurial.util
+import mercurial.node
+
+import os
+import time
+import changes
+
+def hook(ui, repo, hooktype, node=None, source=None, **kwargs):
+ if hooktype != 'changegroup':
+ raise mercurial.util.Abort(_('logging installed as wrong hook type,'
+ ' must be changegroup but is %s') % hooktype)
+ t = time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime())
+ user = os.environ['REMOTE_USER']
+ # FIXME: lock it
+ log = open(repo.join("push-log"), "a+")
+ try:
+ for ctx in changes.changes(repo, node):
+ log.write("%s push key=%s changeset=%s\n" %
+ (t, user, mercurial.node.hex(ctx.node())))
+ finally:
+ log.close()
+