Workable if your team is mostly on Git but origin is svn.
A two-way bridge between Git and Subversion. Lets you work locally in Git while the canonical history still lives in an svn server.
git svn fetches svn revisions as Git commits (each tagged with a git-svn-id: trailer) and dcommits Git commits back as new svn revisions. The trailer is how it tracks correspondence; never edit it.
git svn <subcommand> [<options>]
Typical bootstrap:
git svn clone --stdlayout https://svn.example.org/repo myrepo
cd myrepo
# ... hack, commit locally ...
git svn rebase
git svn dcommit| Flag | What it does |
|---|---|
--stdlayout | Assume the standard svn trunk/branches/tags layout. Shorthand for -T trunk -b branches -t tags. |
-T <path>, -b <path>, -t <path> | Custom paths for trunk/branches/tags when --stdlayout doesn't fit. |
--username=<user> | svn auth username. Password comes from svn's own credential cache. |
--ignore-paths=<regex> | Skip svn paths matching this regex (e.g. huge vendor dirs). |
--rewrite-root=<url> | Record a different svn URL in the git-svn-id: trailer. Useful when the server moves. |
git svn clone --stdlayout https://svn.example.org/repogit svn init --stdlayout https://svn.example.org/repogit svn fetchgit svn rebasegit svn dcommitgit svn branch my-featuregit svn tag v1.2.3git svn loggit svn infogit svn clone --stdlayout --username=alice https://svn.example.org/repo myrepogit svn rebase && git svn dcommitgit svn clone --stdlayout --ignore-paths='^vendor/blobs' https://svn.example.org/repogit svn infoHit each option, then Check answers. Score is recorded; Next is always open.