Phil's blog

Apr 2014
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

SubveRSSed 1.0

I previously introduced a Subversion post-commit hook to generate RSS feeds based on commits. But the generated feeds were not that smart. SubveRSSed 1.0 now handle RSS 1.0 feeds ! The next step will probably be Atom.

update (05/08/10) : SubveRSSed 1.1 has a great speed improvement since i dropped the "full RSS feed" support.

by Philippe Normand on Tue Apr 26 12:52:22 2005 (Viewed: 29202 / 9 comments )
  |   RSS  |   RSS2  |   Atom  |   Source  |   Edit

#.   Jeff Schiller on Tue Jul 12 17:09:44 2005

Your Preview button ate my long ocmment I was going to post. You might want to look into that.

Long story short, can this be made part of Subversion? My svgn admin skills are lacking. I'd just like to have an LINK REL RSS feed available on my WebDAV page of my repository for Firefox's Live Bookmarks but I don't want to have to tinker with installing a Python script...

#.   phil on Tue Jul 12 17:25:31 2005

Hi Jeff,

About preview, i'll debug it. Sorry for inconvenience :(

I don't think SubveRSSed will ever be integrated into Subversion as it is right now. Mainly because the script depends on EaseXML which is not that popular so far.

Though there are alternatives, one guy did some XSLT to transform output of svn log --xml to the RSS format, which can be more convenient in some ways.

About LINK REL, this is a good idea. I guess you use some XSL to transform the XML returned by the WebDAV component to HTML. So a hack on the XSLT script may do the trick. Now remains the problem : where the LINK should point to ;)

Probably integrating the RSS into the WebDAV component may do the job, i don't know that technology very much.. It would be worth it to chat with the subversion developers one time.

I'll keep you posted

#.   pops on Mon Aug 8 19:22:34 2005


I get this below errror even after installing easexml 2.1.

[root@master ~]# svn co

[root@master ~]# cd easexml

[root@master ~]# python install

[root@master ~]# python You need EaseXML (> 0.2.0) to use subveRSSed Check it out at

Is there anything else to do to make this work.

thanks pops

#.   phil on Tue Aug 9 08:20:18 2005

Hi pops,

The mistake is mine this time ;) I forgot to include a package in the Can you please update your EaseXML SVN copy to revision 109 ?

Thanks for bug report

#.   pops on Wed Aug 10 16:01:55 2005


Thanks :), Revision 109 solved teh earlier problem. But when iam trying to build the RSS feed on my repository iam getting the below error.

[root@master ~]# ./ --repository=/store1/subversion/repositories/DirectI --output=out/ --title="CR Changes"

Adding revision 5087



Adding revision 5087

Writing "out/2000"

Traceback (most recent call last):

File "./", line 338, in ?


File "./", line 302, in main


File "./", line 218, in



UnicodeDecodeError: 'ascii' codec can't decode

byte 0xe6 in position 1508: ordinal not in range(128)


#.   phil on Thu Aug 11 09:40:49 2005


Revision 95 of SubveRSSed fixes the Unicode problem. I noticed you don't provide a --link option. So it defaults to "". If you intend to make the feeds publicly available, this can be a problem.

Here is how i do, my output path is /var/www/pythonfr/svn/ which is a directory served by Apache as url "" .. The ouput path ideally corresponds to an URL. Do you get the point ?

Then if you specify a --link "http://localhost/feed.html" --output "/var/www/", you'll get /var/www/feed_*.html and /var/www/feed.xml

Cheers, Philippe

#.   Dan Mosedale on Wed Aug 24 00:33:33 2005
Patch to the current cvs version that fixes two bugs: the --diff option broke recently, and on OS X, each run of the program doubles every newline in the HTML feed, which causes the size of the feed to exponentially explode until it runs out of virtual memory trying to process the old feed.

Thanks for a very useful script!


---      (revision 96)
+++      (working copy)
@@ -221,7 +221,7 @@
            if i.description is not None:
        f = open(fname,'w')
-        f.write('\n'.join(lines))
+        f.write(''\.join(lines))

def main(options):
@@ -281,7 +281,7 @@
        itemId = ItemId(resource=newItemLink)

        if options.HAVEDIFF == True:
-            diff = helper.get_diff(i)
+            diff = helper.get_diff(i, encoding)
            d = u'
%s %s
' % (log, diff)
            d = u'
\n' % (log)

#.   phil on Wed Aug 24 10:24:25 2005

Tanks for your contribution Dan!

#.   Fernando on Wed Feb 15 13:41:38 2006


This script is very good, but in my system I have to add a meta tag to show HTML file correctly. I don't understand Python very much, but I think you always write an UTF-8 HTML, so here is my contribution:

(around line 71)



<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >



Thank you for this script!

Comments not allowed anymore on this post