{ "info": { "author": "Takayuki SHIMIZUKAWA", "author_email": "shimizukawa at gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: System Administrators", "License :: OSI Approved :: Python Software Foundation License", "Programming Language :: Python", "Topic :: Software Development" ], "description": "`svnpoller` watches target SVN repositories regularly and transmits a\r\ncommit-mail to the designated notify party about each commit when there\r\nare new commits.\r\n\r\nSetting sample\r\n--------------\r\n\r\nsvnpoller.ini::\r\n\r\n [mail]\r\n smtpserver = localhost\r\n fromaddr = admin@example.com\r\n\r\n [sample-section]\r\n url = http://svn.example.org/path/to/repos/with/sub/path\r\n address = test1@example.com, test2@example.com\r\n\r\n\r\nNotify mail sample\r\n-------------------\r\n\r\nNotified mail sample::\r\n\r\n From: admin@example.com\r\n To: test1@example.com, test2@example.com\r\n Subject: [sample-section: 1230]\r\n\r\n * Revision: 1230\r\n * Author: foo\r\n * Date: 2009-11-22T17:40:47.287888Z\r\n * Message:\r\n The commit log message for this revision here.\r\n\r\n * Paths:\r\n M /with/sub/path/somefile1.py\r\n A /with/sub/path/somefile2.py\r\n\r\n * Diff:\r\n Index: somefile1.py\r\n ===================================================================\r\n --- somefile1.py (revision 1230)\r\n +++ somefile1.py (revision 1229)\r\n\r\n\r\nRequirements\r\n------------\r\n\r\n* Python 2.4 or later (not support 3.x)\r\n\r\n\r\nDependencies\r\n------------\r\n\r\n* `setuptools `_ or\r\n `distribute `_\r\n\r\n* svn external command (1.4 or later)\r\n\r\n* `lxml` (optional)\r\n\r\n\r\nFeatures\r\n--------\r\n\r\n* polling specified svn repository\r\n\r\n* send commit message and diff by email\r\n\r\n\r\nSetup\r\n-----\r\n\r\nMake environment (by easy_install)::\r\n\r\n $ easy_install svnpoller\r\n\r\n\r\nMake environment (by buildout)::\r\n\r\n $ hg clone http://bitbucket.org/shimizukawa/svnpoller\r\n $ cd svnpoller\r\n $ python bootstrap.py\r\n $ bin/buildout\r\n\r\n\r\nCopy and modify ini file. example::\r\n\r\n $ cp /svnpoller/svnpoller.ini .\r\n $ vi svnpoller.ini\r\n\r\nPlease refer to `Setting sample`_ section for the format of the\r\n`svnpoller.ini` configuration file.\r\n\r\nUsage\r\n-----\r\n\r\nExecute svnpoller command::\r\n\r\n $ svnpoller svnpoller.ini\r\n\r\nor setup cron job::\r\n\r\n $ crontab -e\r\n 0 0 * * * /path/to/svnpoller /path/to/svnpoller.ini\r\n\r\n\r\nHistory\r\n-------\r\n\r\n0.0.10 (2010-9-16)\r\n~~~~~~~~~~~~~~~~~~\r\n* Fix: svnpoller exec 'svn diff -r100 ' for check revision 10000 that\r\n command mean 'svn diff -r100:HEAD ' then if HEAD=10000 svnpoller\r\n take long time and large svn diff output.\r\n\r\n\r\n0.0.9 (2010-6-23)\r\n~~~~~~~~~~~~~~~~~~\r\n* Fix: commit message include multi-byte charactor cause exception.\r\n* Remove: `lxml` dependency, become optional\r\n (thanks to 'Federico' for the patch!).\r\n* Fix: Exception caused by error status return from svn command\r\n when repository was not updated since last check\r\n (thanks to 'Federico' for the patch!).\r\n* Add: copy-only or delete-only or move-only diff are not attached\r\n (thanks to 'Federico' for the patch!).\r\n\r\n0.0.8 (2010-6-20)\r\n~~~~~~~~~~~~~~~~~~\r\n* Fix: Notify mail send only first address when multiple address\r\n (comma separated) was specified on ini file.\r\n\r\n0.0.7 (2010-6-18)\r\n~~~~~~~~~~~~~~~~~~\r\n* Fix: datetime.strptime replaced with time.strptime (for Python-2.4)\r\n* Remove: `lxml` dependency. (if python-2.5 or later)\r\n* Change: supported svn external command version: 1.4 or later\r\n\r\n0.0.6 (2010-6-18)\r\n~~~~~~~~~~~~~~~~~~\r\n* Fix: latest revision's change ware notified every time.\r\n* Add: some tests.\r\n\r\n0.0.5 (2010-5-20)\r\n~~~~~~~~~~~~~~~~~~\r\n* Add changed `path-list` to mail-message.\r\n\r\n0.0.4 (2010-5-20)\r\n~~~~~~~~~~~~~~~~~~\r\n* first release\r\n\r\nTodos\r\n------\r\n\r\nFunctionals\r\n~~~~~~~~~~~~\r\n* Add debug option '--debug / -d' for processing status output.\r\n* Add log output option '--log / -l' by `logging`.\r\n* Add filtering option for non-target file at same commit rev.\r\n* Introduce customizable mail template.\r\n* Remove base64 e-mail encoding always.\r\n* Add e-mail encoding (now using base64 encoded utf-8)\r\n* Add notify mechanism when lost target (maybe repository structure was changed)\r\n* Add setting for the filtering of the file which it was saved at the same time, but is uninteresting.\r\n* Add mercurial(hg) support.\r\n* Add bazaar(bzr) support.\r\n* Attach diff without printing in the main text.(config?)\r\n* Speed-up for multi url polling.\r\n* Add generating ini file automatically, or using Paster template.\r\n\r\nEnvironments\r\n~~~~~~~~~~~~~\r\n* Refactoring.\r\n* Add test: multi url polling\r\n* Add test: Python2.4, 2.5, 2.6 support check.\r\n\r\nKnown Issues\r\n~~~~~~~~~~~~~\r\n* \"--dry-run\" update latest revision config value.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/shimizukawa/svnpoller", "keywords": "subversion,svn,poll,notify", "license": "PSL", "maintainer": "", "maintainer_email": "", "name": "svnpoller", "package_url": "https://pypi.org/project/svnpoller/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/svnpoller/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://bitbucket.org/shimizukawa/svnpoller" }, "release_url": "https://pypi.org/project/svnpoller/0.0.10/", "requires_dist": null, "requires_python": null, "summary": "polling svn repository and notify by email.", "version": "0.0.10" }, "last_serial": 659998, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3442bc329027e7760283795ef3d7d01f", "sha256": "19b76715e9be4d6c8a36619a433b20b1f46f3d2a1ddfc1e10da72b724cf052a9" }, "downloads": -1, "filename": "svnpoller-0.0.1.zip", "has_sig": false, "md5_digest": "3442bc329027e7760283795ef3d7d01f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3904, "upload_time": "2010-05-19T19:58:13", "url": "https://files.pythonhosted.org/packages/ab/af/9e571e80385951d6b8f41b519a2da233b8383bc8d96eadd601114c18d768/svnpoller-0.0.1.zip" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "142c8c073cd74edde4474cd2fb5d4782", "sha256": "2fc4cff41424bfcff3e72e2b3db0dfbe8a33141f5db99cc136125ec44e24dca3" }, "downloads": -1, "filename": "svnpoller-0.0.10.tar.gz", "has_sig": false, "md5_digest": "142c8c073cd74edde4474cd2fb5d4782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148357, "upload_time": "2010-09-16T07:08:46", "url": "https://files.pythonhosted.org/packages/d5/59/24425a926d9e1f4f2496b66c772ee8d809461928e0363986365b595577f7/svnpoller-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "b011791a3a723e67b8c1d4a149336409", "sha256": "8b50bd544594aa9fe49b9e9c5bd7cba657e082ed896a638cbbf04212edb8f1ac" }, "downloads": -1, "filename": "svnpoller-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b011791a3a723e67b8c1d4a149336409", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5340, "upload_time": "2010-05-20T13:56:22", "url": "https://files.pythonhosted.org/packages/5e/f5/39c5c377bb9aa3d23e2ffbaff9393f357ff9a82d84538930aff69d716da0/svnpoller-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "550ad4188153f6af12dbefe2f05b8234", "sha256": "60c0d372b6e84c54383ad55ec878c281f2b2e36a1c17a56400263084e2715d57" }, "downloads": -1, "filename": "svnpoller-0.0.3.tar.gz", "has_sig": false, "md5_digest": "550ad4188153f6af12dbefe2f05b8234", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5361, "upload_time": "2010-05-20T14:55:20", "url": "https://files.pythonhosted.org/packages/3d/2e/f2b1f9655f8a8d4d01d1619161a43ba0deb12698387b94da58d32bed0486/svnpoller-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "f0f2f8591e2eebc03c468a8daf394f78", "sha256": "68b28f5b1ee102a56cd8ce2c7aef437410554815b1e3018c9cddafa16b439136" }, "downloads": -1, "filename": "svnpoller-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f0f2f8591e2eebc03c468a8daf394f78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5338, "upload_time": "2010-05-20T15:04:40", "url": "https://files.pythonhosted.org/packages/80/a6/d72d70b5ac96b8cdea9617c0775be630edd0056ce6c3af3996f0fbc32130/svnpoller-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "2c8a4a428721ee414b58e45ef85fdc58", "sha256": "c39f504553b489fe164b223fa2a8eb34a2952d001a79f8a29147c4d963b11fb4" }, "downloads": -1, "filename": "svnpoller-0.0.5.tar.gz", "has_sig": false, "md5_digest": "2c8a4a428721ee414b58e45ef85fdc58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5448, "upload_time": "2010-05-20T15:34:10", "url": "https://files.pythonhosted.org/packages/49/0c/34e2f0137c774ab4abd1ed8fdfd9d27075535be379c77b8e1e628ef238fc/svnpoller-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "55d4fdf343716a7d6d87b9905661d8ec", "sha256": "05a1bbc62c337b784845eead417f936be7dfaffda25a1a86bcaf07983b893b8a" }, "downloads": -1, "filename": "svnpoller-0.0.6.tar.gz", "has_sig": false, "md5_digest": "55d4fdf343716a7d6d87b9905661d8ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9853, "upload_time": "2010-06-18T04:18:13", "url": "https://files.pythonhosted.org/packages/52/1f/4ef8061c90d9f34088ab8f3ab45de05bababa81040f5aa4d04418e61f9ac/svnpoller-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "29f12b26b609473c926b29fa4a68857f", "sha256": "7ccc38407e1465f5d9da8c6d4bdf8d8693c7465fa9f8fb515ddb29e4ef023f4b" }, "downloads": -1, "filename": "svnpoller-0.0.7.tar.gz", "has_sig": false, "md5_digest": "29f12b26b609473c926b29fa4a68857f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10093, "upload_time": "2010-06-18T12:16:30", "url": "https://files.pythonhosted.org/packages/02/a2/8e68f358483600ab410b1c569b066a114093e15985d0c64afb4415b9f58a/svnpoller-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "b620b2b7c907fe6cb757979add8d7517", "sha256": "abb044de876d658b09840a22dc66574605a5c58fcde65f4c80aa75da1e98ed05" }, "downloads": -1, "filename": "svnpoller-0.0.8.tar.gz", "has_sig": false, "md5_digest": "b620b2b7c907fe6cb757979add8d7517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10563, "upload_time": "2010-06-20T17:41:19", "url": "https://files.pythonhosted.org/packages/88/c2/0d6bc46d15e1c5b01b62ea9546be47011476c999dbae813ef8e6c27c5f91/svnpoller-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "4a07f3370f9a8b0579b818e1f007bc9a", "sha256": "5eabdb7ffbdc517c0085ef1fd0c64138c35e828227d15f527ce8f66cea5d1868" }, "downloads": -1, "filename": "svnpoller-0.0.9.tar.gz", "has_sig": false, "md5_digest": "4a07f3370f9a8b0579b818e1f007bc9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11086, "upload_time": "2010-06-23T09:35:18", "url": "https://files.pythonhosted.org/packages/45/e4/c26ad544e9892109c9cc8a4f7eb155b64976c05e0c52492b4a101d94e37e/svnpoller-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "142c8c073cd74edde4474cd2fb5d4782", "sha256": "2fc4cff41424bfcff3e72e2b3db0dfbe8a33141f5db99cc136125ec44e24dca3" }, "downloads": -1, "filename": "svnpoller-0.0.10.tar.gz", "has_sig": false, "md5_digest": "142c8c073cd74edde4474cd2fb5d4782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148357, "upload_time": "2010-09-16T07:08:46", "url": "https://files.pythonhosted.org/packages/d5/59/24425a926d9e1f4f2496b66c772ee8d809461928e0363986365b595577f7/svnpoller-0.0.10.tar.gz" } ] }