Commit Graph
25 Commits
Author SHA1 Message Date
uberwald f8093bf648 fix: pass changed refs list to post-receive hook 2026-06-24 13:34:10 +02:00
uberwald 811e3748d4 refactor: bypass Gitea pre-receive via update-ref + manual post-receive 2026-06-24 13:33:45 +02:00
uberwald d123e80586 fix: fetch to refs/remotes/gitea/* instead of overwriting refs/heads/* 2026-06-24 13:18:12 +02:00
uberwald ef910b6dd9 fix: call push_to_gitea every cycle to retry on failure 2026-06-24 13:13:52 +02:00
uberwald 05bc2b02ec fix: set GITEA_PUSH_VERIFIED=1 to bypass Gitea pre-receive hook 2026-06-24 13:11:54 +02:00
uberwald 700a10579e fix: pass auth_args to svn update/revert in _ensure_wc 2026-06-24 11:57:58 +02:00
uberwald f0b5761d0e fix: only include --password in auth_args if non-empty 2026-06-24 11:56:08 +02:00
uberwald cf1b7e9994 fix: add --non-interactive to git_to_svn._run_svn, fix stdin/input exclusivity 2026-06-24 11:49:40 +02:00
uberwald 4f41bd3488 feat: daemon polls Gitea for new commits before sync_git_to_svn 2026-06-24 11:45:05 +02:00
uberwald 981daaef30 fix: add missing import os in svn.py 2026-06-24 11:23:25 +02:00
uberwald 485da0c549 fix: add --non-interactive, stdin=DEVNULL, and LC_ALL env to svn._run_svn 2026-06-24 11:19:37 +02:00
uberwald e0e368cc9a fix: always advance last_svn_revision even when no new revs (already mapped) 2026-06-24 10:41:25 +02:00
uberwald 07439d09b1 docs: update README with auth, locale, externals, Gitea hook, caveats from deploy experience 2026-06-24 10:40:23 +02:00
uberwald e3c28fea9d feat: set svn:author revprop after commit/tag to preserve real author 2026-06-24 10:31:00 +02:00
uberwald 9c319b3396 fix: don't override --username in svn commit/copy (use auth_args for both auth and author) 2026-06-24 10:22:56 +02:00
uberwald 7baef3c799 fix: pass auth_args to svn commit and svn copy calls 2026-06-24 10:18:10 +02:00
uberwald e20a1c7baf fix: add --ignore-externals to svn checkout/update (unrelated repo) 2026-06-24 10:14:27 +02:00
uberwald f7d97c2c79 fix: use C.UTF-8 instead of C locale for svn subprocess (breaks non-ASCII filenames) 2026-06-24 10:10:15 +02:00
uberwald 2cb6a4b230 fix: ref_exists also checks git-svn remote ref variant for imported tags/branches 2026-06-23 22:19:12 +02:00
uberwald 4d6326231b fix: record converted ref mappings (refs/tags/*, refs/heads/*) during import 2026-06-23 22:03:43 +02:00
uberwald 3536053b44 fix: pre-write SVN password to stdin to avoid deadlock on prompt 2026-06-23 13:33:11 +02:00
uberwald 2422673584 fix: pipe SVN password to git svn stdin when prompted 2026-06-23 13:30:55 +02:00
uberwald d533427cac fix: cache SVN creds before git svn clone, feed /dev/null to stdin 2026-06-23 13:26:09 +02:00
uberwald 99a056d9fb feat: thread SVN auth (username/password) through all svn call sites 2026-06-23 13:23:44 +02:00
uberwald 45fb8c40d0 feat: initial import — SVN↔Git bi-directional mirror for Gitea
Server-side sidecar daemon. Uses own SQLite mapping table (not git svn)
so Git commit hashes never change. Pure Python, zero framework deps.

Includes:
- SVN→Git sync engine with nested-directory tree reconstruction
- Git→SVN push with author mapping and working-copy management
- Branch/tag sync (svn copy → git branch/tag and reverse)
- Gitea integration (on-disk push/fetch, webhook receiver)
- Reconciliation tool for divergence recovery (assess + auto-fix)
- Full end-to-end regression test (bash, 34 checks)
- systemd unit and deployment docs

Only external dependency: PyYAML (config parsing).
2026-06-23 09:47:02 +02:00