equal
deleted
inserted
replaced
|
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 |
|
15 from mercurialserver import changes |
|
16 |
|
17 def hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
|
18 if hooktype == 'changegroup': |
|
19 op = "push" |
|
20 elif hooktype == 'outgoing': |
|
21 op = "pull" |
|
22 else: |
|
23 raise mercurial.util.Abort(_('servelog installed as wrong hook type,' |
|
24 ' must be changegroup or outgoing but is %s') % hooktype) |
|
25 t = time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime()) |
|
26 user = os.environ['REMOTE_USER'] |
|
27 # FIXME: lock it |
|
28 log = open(repo.join("serve-log"), "a+") |
|
29 try: |
|
30 for ctx in changes.changes(repo, node): |
|
31 log.write("%s %s key=%s changeset=%s\n" % |
|
32 (t, op, user, mercurial.node.hex(ctx.node()))) |
|
33 finally: |
|
34 log.close() |