author | Paul Crowley <paul@lshift.net> |
Mon, 09 Nov 2009 17:13:37 +0000 | |
changeset 177 | fb6587ce93c6 |
parent 78 | 2a3407a14654 |
child 242 | 03d8f07230b3 |
permissions | -rw-r--r-- |
54 | 1 |
# Copyright 2008-2009 LShift Ltd |
2 |
# |
|
3 |
# Authors: |
|
4 |
# Paul Crowley <paul@lshift.net> |
|
5 |
# |
|
6 |
# This software may be used and distributed according to the terms |
|
7 |
# of the GNU General Public License, incorporated herein by reference. |
|
8 |
||
9 |
from mercurial.i18n import _ |
|
10 |
import mercurial.util |
|
11 |
import mercurial.node |
|
12 |
||
13 |
import os |
|
14 |
import time |
|
78
2a3407a14654
Replaced env vars with Python globals
Paul Crowley <paul@lshift.net>
parents:
67
diff
changeset
|
15 |
from mercurialserver import ruleset, changes |
2a3407a14654
Replaced env vars with Python globals
Paul Crowley <paul@lshift.net>
parents:
67
diff
changeset
|
16 |
|
54 | 17 |
def hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
55 | 18 |
if hooktype == 'changegroup': |
19 |
op = "push" |
|
20 |
elif hooktype == 'outgoing': |
|
21 |
op = "pull" |
|
22 |
else: |
|
59
f96de2d99f00
give logging module a more specific name
Paul Crowley <paul@lshift.net>
parents:
56
diff
changeset
|
23 |
raise mercurial.util.Abort(_('servelog installed as wrong hook type,' |
55 | 24 |
' must be changegroup or outgoing but is %s') % hooktype) |
54 | 25 |
t = time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime()) |
78
2a3407a14654
Replaced env vars with Python globals
Paul Crowley <paul@lshift.net>
parents:
67
diff
changeset
|
26 |
user = ruleset.rules.get('user') |
54 | 27 |
# FIXME: lock it |
56
9ea9a30cd060
Give log more appropriate name now it has pulls too
Paul Crowley <paul@lshift.net>
parents:
55
diff
changeset
|
28 |
log = open(repo.join("serve-log"), "a+") |
54 | 29 |
try: |
30 |
for ctx in changes.changes(repo, node): |
|
55 | 31 |
log.write("%s %s key=%s changeset=%s\n" % |
32 |
(t, op, user, mercurial.node.hex(ctx.node()))) |
|
54 | 33 |
finally: |
34 |
log.close() |