Setuptools revision control system plugin for Subversion
Subversion support for setuptools
Setuptools has built-in support for subversion repositories; it’ll find all files tracked by subversion and include them when building a distribution.
However, this support directly reads the private subversion repository metadata files, and these have been know to change from version to version. For example, subversion 1.7 switched to one top-level .svn directory with a sqlite database, instead of separate directories throughout the working copy with proprietary or XML text files in preceding versions. As of the time of this package development, setuptools does not yet support working copies using the subversion 1.7 sqlite database format.
This package uses the svn list command instead to list files in a repository, avoiding having to know about every version of subversion and it’s particular metadata formats.
Note that when using setuptools on a subversion 1.7 working copy, setuptools itself will complain about not being able to parse the .svn/entries file before it delegates file listing to this plugin. This is just a warning, and can safely be ignored.
- Python 2.4 or newer (including python 3.x)
- The svn command line tool. Any version will do.
The project code is hosted on GitHub, feel free to report issues, fork the code and issue pull requests.
BSD (simplified), see: LICENSE.txt
- Do not rely on sys.stdout.encoding, use locale.getpreferredencoding() instead; when used as a pipe no encoding is set otherwise. [stefan]
- Don’t log an error when the target directory is not a Subversion sandbox. [stefan]
- Return Unicode strings under Python 3. [stefan]
- Fixed compatibility with Python 2.4 once more. [mj]
- Fix issue #3: svn ls on Windows may return slashes. [stefan]
- Fixed compatibility with Python 3. [mj]
- Fixed compatibility with Python 2.4. [maurits]
- Return only files, not directories. [stefan]
- Metadata and minor documentation updates. [mj]
- Improve logging output when the svn command fails; lowering it to INFO level and prepending the module name. [mj]
- Compatibility with python versions 2.4 and 2.5 (thanks to Maurits van Rees) as well as python 3. [mj]
- Documentation updates. [mj]
- Packaging metadata update.
- Initial release.