svn
Intuitive Subversion wrapper.
What it is and what it does
svn is a lightweight Python wrapper around the Subversion command-line client that lets you interact with SVN repositories and working copies programmatically. It provides two main client classes—LocalClient for working with local checked-out copies and RemoteClient for accessing remote repositories—plus an Admin class for repository creation. Both clients share a common set of methods for operations like checkout, commit, log, diff, list, info, and status.
The library is designed as an accessible alternative to heavier bindings, with no external Python dependencies beyond the requirement that the svn command-line tool be installed on your system. It supports username and password authentication and offers both simple and extended output formats for many operations. However, the package has been dormant since 2020, with the last commit in April 2024, so it may not reflect recent Subversion or Python ecosystem changes.
Use it for:
- Automate SVN repository operations (checkout, commit, update) from Python scripts or applications.
- Query repository metadata (logs, diffs, file contents, revision history) without manual CLI calls.
- Build deployment or version-control automation tools that need to interact with legacy SVN systems.
- Create Python-based repository administration tasks like repository creation via the Admin class.
- Integrate SVN operations into CI/CD pipelines or build systems that run on Python.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Wraps the Subversion command-line client to provide Python access to local working copies and remote repositories, supporting operations like checkout, commit, log, diff, and repository administration.
Yes, but with conditions. Install if you must integrate with an existing Subversion repository and have the svn command-line client available on your system. The package is stable and has no known vulnerabilities, but maintenance is dormant—expect no updates for new Python or Subversion versions. The GPL 2 copyleft license requires careful review if you plan to distribute your code. For new projects, consider modern version-control systems; for legacy SVN systems, this remains a practical lightweight option.
Install
svn on PyPI
pip
pip install svnuv
uv add svnpoetry
poetry add svnInstalling svn
Before you install
High install friction: requires the svn command-line client to be installed on the system. Package itself has no runtime dependencies but maintenance is dormant—last release was in 2020, with no commits since 2024-04-19.
License in practice
Licensed under GPL 2 (copyleft). Any code that imports and uses this package must comply with GPL 2 obligations, including potential source code disclosure requirements if distributed.
Quickstart
import svn.remote
r = svn.remote.RemoteClient('https://repo.local/svn')
r.checkout('/tmp/working')
# Or for local working copy:
import svn.local
l = svn.local.LocalClient('/tmp/test_repo')
info = l.info()
The svn command-line client must be installed and available on the system PATH.
Verify before relying
- Whether the package works reliably with modern Python versions beyond 3.3+, given dormant maintenance status.
- Current compatibility with recent Subversion server versions and authentication mechanisms.
- Whether the diff reimplementation in 1.0.0 is stable or if backwards-incompatible issues remain.
Package facts
| License | GPL 2 (copyleft) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 2,386 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 155,366/month — #10,820 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: svn-1.0.1.tar.gz
Keywords: svn, subversion
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
vcstoolvcstool is a command-line tool that manages…
permissive · top 15,000 on PyPI
pymaven-patchPymaven-patch provides Python access to Maven…
permissive · top 15,000 on PyPI
asanaPython client library for the Asana REST API,…
permissive · top 5,000 on PyPI
patchParses and applies unified diff patches to…
permissive · top 15,000 on PyPI
simple-rest-clientA lightweight HTTP client library for building…
unclear · top 15,000 on PyPI
webdavclient3Python WebDAV client library providing access…
permissive · top 15,000 on PyPI
python-gerrit-apiProvides a Python client library for…
permissive · top 15,000 on PyPI
api4jenkinsA Python client library for the Jenkins REST…
permissive · top 15,000 on PyPI
mercurialMercurial is a distributed version control…
copyleft · top 15,000 on PyPI
pyawscronParses and iterates over AWS CloudWatch cron…
permissive · top 15,000 on PyPI