ktsu.SvnToGit.Core
1.0.22
Prefix Reserved
dotnet add package ktsu.SvnToGit.Core --version 1.0.22
NuGet\Install-Package ktsu.SvnToGit.Core -Version 1.0.22
<PackageReference Include="ktsu.SvnToGit.Core" Version="1.0.22" />
<PackageVersion Include="ktsu.SvnToGit.Core" Version="1.0.22" />
<PackageReference Include="ktsu.SvnToGit.Core" />
paket add ktsu.SvnToGit.Core --version 1.0.22
#r "nuget: ktsu.SvnToGit.Core, 1.0.22"
#:package ktsu.SvnToGit.Core@1.0.22
#addin nuget:?package=ktsu.SvnToGit.Core&version=1.0.22
#tool nuget:?package=ktsu.SvnToGit.Core&version=1.0.22
ktsu.SvnToGit
A guided .NET 10 CLI that migrates a Subversion repository to Git, wrapping git svn with an interactive Spectre.Console front-end.
What it does
SvnToGit.ConsoleApp is a menu-driven TUI that walks a user through:
- Clone — runs
git svn clone <svn-path> <git-path> --stdlayout, with optional--authors-fileand--preserve-empty-dirs. - Cleanup refs — converts the remote
git-svnbranches into local Git branches. - Finalize — runs
git gc --aggressive. - Report — exit status with the path of the new Git repository.
Built on top of git svn, so anything git svn can do, this tool can do — but with a guided front end, validation, and progress reporting via Spectre.Console.
Prerequisites
- Git with
git-svnsupport on thePATH. - An SVN repository reachable as a local path or URL.
- Disk space for the cloned Git repo.
- .NET 10 SDK.
Installation
This repository ships two projects:
SvnToGit.ConsoleApp— the runnable TUI.SvnToGit.Core— the migration library (SvnToGitMigrator) that the CLI consumes; reusable in other apps.
git clone <repo>
cd SvnToGit
dotnet build
Usage
dotnet run --project SvnToGit.ConsoleApp
The TUI presents four options:
| Option | Effect |
|---|---|
migrate |
Run the full migration, prompting for paths. |
validate |
Validate the configured paths and exit without migrating. |
help |
Built-in help, including the authors-file format. |
exit |
Quit. |
Configuration prompts (during migrate)
| Prompt | Required | Notes |
|---|---|---|
| SVN repository path | yes | Local path or URL. |
| Git repository path | no | Defaults to <svn-dir>-git. |
| Authors file | no | One mapping per line: svnuser = Full Name <email@example.com>. |
| Preserve empty directories | no | Defaults to yes. |
| Advanced options | no | Toggles exclude-tags / exclude-branches lists. |
The
ExcludeTagsandExcludeBranchesfields are accepted in the prompts but are not currently passed through togit svn— see open issues.
Related
KtsuTools exposes a non-interactive flag-driven version of the same migration as ktsu svn-migrate. This repo's TUI is the canonical interactive experience.
License
MIT License. Copyright (c) ktsu.dev
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- ktsu.RunCommand (>= 1.5.2)
- System.Memory (>= 4.6.3)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETStandard 2.1
- ktsu.RunCommand (>= 1.5.2)
-
net10.0
- ktsu.RunCommand (>= 1.5.2)
-
net5.0
- ktsu.RunCommand (>= 1.5.2)
-
net6.0
- ktsu.RunCommand (>= 1.5.2)
-
net7.0
- ktsu.RunCommand (>= 1.5.2)
-
net8.0
- ktsu.RunCommand (>= 1.5.2)
-
net9.0
- ktsu.RunCommand (>= 1.5.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.22 | 36 | 8/21/2026 |
| 1.0.21 | 139 | 8/20/2026 |
| 1.0.20 | 186 | 8/19/2026 |
| 1.0.19 | 135 | 8/19/2026 |
| 1.0.18 | 82 | 8/18/2026 |
| 1.0.17 | 88 | 8/17/2026 |
| 1.0.16 | 86 | 8/17/2026 |
| 1.0.15 | 88 | 8/11/2026 |
| 1.0.14 | 118 | 7/3/2026 |
| 1.0.13 | 112 | 7/2/2026 |
| 1.0.12 | 109 | 7/1/2026 |
| 1.0.11 | 108 | 6/30/2026 |
| 1.0.10 | 114 | 6/29/2026 |
| 1.0.9 | 110 | 6/28/2026 |
| 1.0.8 | 116 | 6/28/2026 |
| 1.0.7 | 118 | 6/12/2026 |
| 1.0.6 | 113 | 6/12/2026 |
| 1.0.6-pre.1 | 95 | 2/17/2026 |
| 1.0.5 | 139 | 2/16/2026 |
| 1.0.5-pre.1 | 81 | 2/16/2026 |
## v1.0.22 (patch)
Changes since v1.0.21:
- Bump the ktsu group with 11 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))