Skip to main content

pysvnlite

轻量、非交互的 Subversion 命令行封装和 XML 解析库。用于自动化脚本、资产历史查询与工作副本管理,不需要运行 SVN 包注册服务。

当前版本:0.2.1。本次为文档维护发布,保留 0.2.0 的 API 和运行时行为。

安装

要求 Python >=3.9 和 PATH 中可用的原生 svn。本库无第三方运行时依赖,包含 py.typed,不会安装 svnpypi CLI。生产请选择仍受官方维护的 Python

在已激活的新虚拟环境中执行:

python -m pip install "pysvnlite==0.2.1"
python -c "from importlib.metadata import version; from pysvnlite import SVNRepo; print(version('pysvnlite'))"

旧 svnpypi<=0.1.7 用户先看安装与迁移 旧捆绑包与独立包拥有同名文件,普通升级或混装后卸载会破坏导入。推荐新环境;原地迁移必须先卸载再安装,不能只依赖 pip check。

只读示例

替换 URL 为你有读取权限的仓库;认证预先通过原生 SVN 配置。

from pysvnlite import SVNRepo

repo = SVNRepo("https://svn.example.com/project/trunk", timeout=30)
for entry in repo.log(limit=10, verbose=True):
    print(entry.revision, entry.author, entry.changed_paths)

API 范围

场景 API
元数据、目录、状态 infoliststatus
历史与变更路径 logiter_logiter_log_eventschanged_files_of_commit
历史文件、差异、逐行归属 catcat_to_filediffblame
工作副本管理 checkoutupdateswitchadddeleterevertcommit
属性及其他操作 propsetpropgetproplistpropdelcopymovemkdirexportcleanupresolvelockunlock

完整签名和返回模型见 API 参考,组合用法见 API 使用指南

安全与兼容边界

  • 所有 SVN 调用添加 --non-interactive;凭据、ACL、证书和 SSH 配置由原生 SVN 管理。
  • 写操作会修改工作副本或提交远端,先在临时测试仓库验证。库不提供自动回滚或事务。
  • timeout=None 不设时限;日志的硬字节上限需要显式设置。事件在 SVN 输出捕获完毕后产生,不是网络实时流。
  • cat_to_file 原子替换目标;失败保留旧文件。cat 会把整个文件读入内存。
  • 检出路径保护检测预期 .svn,但不是原生编码补丁。部分 Windows / TortoiseSVN 中文绝对路径仍受限,见 Windows 路径说明
  • SVNCommandError 提供分类;commit 的普通非零退出可通过 CommitResult.success 返回,调用方必须检查。详见 API 参考。
  • 网络认证、macOS 和全部 SSH 后代进程组合并未完整实测,不应从 CI 通过推断支持所有环境。

文档与维护

在开发虚拟环境、仓库根目录执行:

python -m pip install -e ".[dev,release]"
python -m ruff check src tests scripts
python -m mypy src scripts
python -m pytest -q
python scripts/release_pypi.py

脚本默认不上传。wheel / sdist 只包含本库及必要元数据,不含 AI 文件、测试、CI 或 svnpypi 源码;sdist 另允许 Hatchling 附带的 .gitignore

本库从 svnpypi v0.1.7 拆出,独立发行从 0.2.0 开始;保留 MIT 许可和作者信息。需要包注册 CLI 时另行安装 svnpypi,两项目分别维护和发布。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysvnlite-0.2.1.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysvnlite-0.2.1-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

Details for the file pysvnlite-0.2.1.tar.gz.

File metadata

  • Download URL: pysvnlite-0.2.1.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pysvnlite-0.2.1.tar.gz
Algorithm Hash digest
SHA256 3a5ae784a126e6c92ab3cc740f37a34d37c0fad0b719075e0fbd0f1128487ca2
MD5 105c130211a0f91a192a9010d4ba4d91
BLAKE2b-256 7db03e2f0705b7716f149b601e021302b1f14802fee172a82fe08c8aeeb4f102

See more details on using hashes here.

File details

Details for the file pysvnlite-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pysvnlite-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 28.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pysvnlite-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8e5aed003ac1a131fae9698f756f2429212ce81ca46e1b9e42b52b2cf45dc30b
MD5 6b5b05b50fb5a58db7b789890d3be0db
BLAKE2b-256 7f0ddfd3a2b35ef2d9641e77426ca686609b33e7475fbfd58e143d540a1033e5

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.2

2 files

This release

0.2.1 This release

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page