You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2013/01/06 03:33:39 UTC
svn commit: r1429457 [21/21] - in /subversion/branches/tree-read-api: ./
build/ build/ac-macros/ build/generator/templates/ build/win32/
contrib/server-side/svncutter/ doc/ subversion/bindings/cxxhl/include/
subversion/bindings/cxxhl/include/svncxxhl/ ...
Modified: subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/client.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/client.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/client.py (original)
+++ subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/client.py Sun Jan 6 02:33:34 2013
@@ -119,10 +119,15 @@ class XMLStreamHandler(xml.sax.handler.C
self.rev = None
self.chars = ''
+ self.parent = None
+ self.attrs = [ ]
def startElement(self, name, attrs):
+ self.attrs = attrs
if name == 'commit':
self.rev = Revision(attrs['repository'], int(attrs['revision']))
+ elif name == "dirs_changed" or name == "changed":
+ self.parent = name
# No other elements to worry about.
def characters(self, data):
@@ -134,10 +139,15 @@ class XMLStreamHandler(xml.sax.handler.C
self.rev = None
elif name == 'stillalive':
self.event_callback('ping')
+ elif name == self.parent:
+ self.parent = None
elif self.chars and self.rev:
value = self.chars.strip()
- if name == 'path':
+ if self.parent == 'dirs_changed' and name == 'path':
self.rev.dirs_changed.append(value.decode('unicode_escape'))
+ elif self.parent == 'changed' and name == 'path':
+ path = value.decode('unicode_escape')
+ self.rev.changed[path] = dict(p for p in self.attrs.items())
elif name == 'author':
self.rev.author = value.decode('unicode_escape')
elif name == 'date':
@@ -147,6 +157,8 @@ class XMLStreamHandler(xml.sax.handler.C
# Toss out any accumulated characters for this element.
self.chars = ''
+ # Toss out the saved attributes for this element.
+ self.attrs = [ ]
class Revision(object):
@@ -154,6 +166,7 @@ class Revision(object):
self.uuid = uuid
self.rev = rev
self.dirs_changed = [ ]
+ self.changed = { }
self.author = None
self.date = None
self.log = None
Modified: subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/server.py
URL: http://svn.apache.org/viewvc/subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/server.py?rev=1429457&r1=1429456&r2=1429457&view=diff
==============================================================================
--- subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/server.py (original)
+++ subversion/branches/tree-read-api/tools/server-side/svnpubsub/svnpubsub/server.py Sun Jan 6 02:33:34 2013
@@ -78,7 +78,8 @@ class Revision:
# thus creating invalid XML, so the XML code paths do escaping.
self.rev = r.get('revision')
self.repos = r.get('repos')
- self.dirs_changed = [x for x in r.get('dirs_changed')]
+ self.dirs_changed = r.get('dirs_changed')
+ self.changed = r.get('changed')
self.author = r.get('author')
self.log = r.get('log')
self.date = r.get('date')
@@ -88,6 +89,7 @@ class Revision:
return json.dumps({'commit': {'repository': self.repos,
'revision': self.rev,
'dirs_changed': self.dirs_changed,
+ 'changed': self.changed,
'author': self.author,
'log': self.log,
'date': self.date}}) +","
@@ -100,6 +102,11 @@ class Revision:
for p in self.dirs_changed:
x = ET.SubElement(d, 'path')
x.text = p.encode('unicode_escape')
+ ch = ET.SubElement(c, 'changed')
+ for chp in self.changed.keys():
+ x = ET.SubElement(ch, 'path', self.changed[chp])
+ x.text = chp.encode('unicode_escape')
+
str = ET.tostring(c, 'UTF-8') + "\n"
return str[39:]
else:
Propchange: subversion/branches/tree-read-api/tools/server-side/svnpubsub/svntweet.py
------------------------------------------------------------------------------
svn:executable = *