feat(tools/subversion): Apache Subversion (SVN) support — ASF svn.apache.org / dist.apache.org
- Dominant language
- Python
- Stars
- 92
- Forks
- 92
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 104
Description
Add `tools/subversion/` for **Apache Subversion (SVN)** support. This one is directly relevant to **the ASF itself**: `svn.apache.org` still hosts active source trees for a number of TLPs, and `dist.apache.org` (the release-distribution area every ASF release is staged and published through) is **SVN, not Git**. A framework that stewards ASF project workflows but can't touch SVN is blind to a core piece of ASF release infrastructure.
**Capabilities to provide:**
- Checkout / update / `svn diff` / `svn status` against a working copy
- History read: `svn log`, `svn blame`, file-at-revision
- Commit with message (write-path gated on explicit user confirmation in the calling skill)
- `dist.apache.org`-aware helpers: stage/promote release artefacts under the SVN release area (useful for a future release-management skill family)
- Reuse the VCS-capability shim introduced by `tools/mercurial/`
**Why:** Beyond ASF infra, SVN remains in heavy use across enterprise, legacy OSS, **SourceForge**-hosted SVN repos, and large monorepos that never migrated. For ASF adopters specifically, `dist.apache.org` support is not optional — it is how releases ship.
**Reference:**
- SVN book: https://svnbook.red-bean.com/
- ASF dist area: https://dist.apache.org/repos/dist/
- Depends on the VCS abstraction from the Mercurial bridge issue
Contributor guide
Research direction
Start by reading the VCS-capability shim introduced by tools/mercurial/ and the requested tools/subversion/ entry point, while checking the Mercurial bridge dependency. Verify the scope against the listed SVN operations and the dist.apache.org release-area reference; done means checkout, update, diff, status, history, commit, and release staging or promotion support are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100