CARVIEW |
Select Language
HTTP/2 301
server: nginx
date: Sun, 24 Aug 2025 17:12:19 GMT
content-type: text/html; charset=utf-8
content-length: 110
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Fri, 29 May 2009 00:48:37 GMT
x-archive-orig-connection: close
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20090529004838/https://github.com/iteman/svn2git/tree/master
x-archive-orig-x-runtime: 83ms
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 110
cache-control: max-age=1800
accept-ranges: bytes
memento-datetime: Fri, 29 May 2009 00:48:38 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Fri, 29 May 2009 00:48:38 GMT", ; rel="memento"; datetime="Fri, 29 May 2009 00:48:38 GMT", ; rel="next memento"; datetime="Fri, 05 Nov 2010 18:47:50 GMT", ; rel="last memento"; datetime="Fri, 05 Nov 2010 18:47:50 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_9_20090528212248_crawl101_IndexOnly-c/52_9_20090529004730_crawl101.arc.gz
server-timing: captures_list;dur=0.878064, exclusion.robots;dur=0.030527, exclusion.robots.policy;dur=0.014320, esindex;dur=0.017675, cdx.remote;dur=26.998634, LoadShardBlock;dur=4271.619329, PetaboxLoader3.datanode;dur=4142.183617, load_resource;dur=299.022218, PetaboxLoader3.resolve;dur=145.349916
x-app-server: wwwb-app218
x-ts: 301
x-tr: 4662
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app218; path=/
cache-control: private
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Sun, 24 Aug 2025 17:12:20 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Fri, 29 May 2009 00:48:37 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 490ms
x-archive-orig-etag: "29cc73ed74906b071938bf085cd0a993"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 21569
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Fri, 29 May 2009 00:48:38 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Fri, 29 May 2009 00:48:38 GMT", ; rel="memento"; datetime="Fri, 29 May 2009 00:48:38 GMT", ; rel="next memento"; datetime="Thu, 07 Jul 2016 03:23:05 GMT", ; rel="last memento"; datetime="Thu, 21 Nov 2024 02:20:52 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_9_20090528212248_crawl101_IndexOnly-c/52_9_20090529004730_crawl101.arc.gz
server-timing: captures_list;dur=0.919912, exclusion.robots;dur=0.032792, exclusion.robots.policy;dur=0.013644, esindex;dur=0.025429, cdx.remote;dur=50.679160, LoadShardBlock;dur=270.084454, PetaboxLoader3.datanode;dur=230.375988, PetaboxLoader3.resolve;dur=351.893609, load_resource;dur=364.556769
x-app-server: wwwb-app218
x-ts: 200
x-tr: 743
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
iteman's svn2git at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Fork of nirvdrum/svn2git | |
Description: | Ruby tool for importing existing svn projects into git. |
Homepage: | https://www.negativetwenty.net/redmine/projects/show/svn2git |
Clone URL: |
git://github.com/iteman/svn2git.git
Give this clone URL to anyone.
git clone git://github.com/iteman/svn2git.git
|
svn2git /
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Loading commit data... ![]() |
|
![]() |
MIT-LICENSE | ||
![]() |
README | ||
![]() |
Rakefile | ||
![]() |
bin/ | ||
![]() |
lib/ |
== svn2git +svn2git+ is a tiny utility for migrating projects from Subversion to Git while keeping the trunk, branches and tags where they should be. It uses git-svn to clone an svn repository and does some clean-up to make sure branches and tags are imported in a meaningful way, and that the code checked into master ends up being what's currently in your svn trunk rather than whichever svn branch your last commit was in. === Examples Say I have this code in svn: trunk ... branches 1.x 2.x tags 1.0.0 1.0.1 1.0.2 1.1.0 2.0.0 git-svn will go through the commit history to build a new git repo. It will import all branches and tags as remote svn branches, whereas what you really want is git-native local branches and git tag objects. So after importing this project I'll get: $ git branch * master $ git branch -a * master 1.x 2.x tags/1.0.0 tags/1.0.1 tags/1.0.2 tags/1.1.0 tags/2.0.0 trunk $ git tag -l [ empty ] After svn2git is done with your project, you'll get this instead: $ git branch * master 1.x 2.x $ git tag -l 1.0.0 1.0.1 1.0.2 1.1.0 2.0.0 Finally, it makes sure the HEAD of master is the same as the current trunk of the svn repo. === Installation Make sure you have git installed, then install the gem: $ sudo apt-get install git-core git-svn $ sudo gem install svn2git === Usage There are a number of ways in which you can create a git repo from an existing svn repo. The differentiating factor is the svn repo layout. Below is an enumerated listing of the varying supported layouts and the proper way to create a git repo from a svn repo in the specified layout. 1. The svn repo is in the standard layout of (trunk, branches, tags) at the root level of the repo. $ svn2git https://svn.yoursite.com/path/to/repo trunk=trunk branches=branches tags=tags 2. The svn repo is NOT in standard layout and has only a trunk and tags at the root level of the repo. $ svn2git https://svn.yoursite.com/path/to/repo trunk=trunk tags=tags 3. The svn repo is NOT in standard layout and has only a trunk and branches at the root level of the repo. $ svn2git https://svn.yoursite.com/path/to/repo trunk=trunk branches=branches 4. The svn repo is NOT in standard layout and has only a trunk at the root level of the repo. $ svn2git https://svn.yoursite.com/path/to/repo trunk=trunk 5. The svn repo is NOT in standard layout and has no trunk, branches, or tags at the root level of the repo. Instead the root level of the repo is equivalent to the trunk and there are no tags or branches. $ svn2git https://svn.yoursite.com/path/to/repo rootistrunk=true The above will create a git repository in the current directory with the git version of the svn repository. Hence, you need to make a directory that you want your new git repo to exist in, change into it and then run one of the above commands. Note that in the above cases the trunk, branches, tags options are simply folder names relative to the provided repo path. For example if you specified trunk=foo branches=bar and tags=foobar it would be referencing https://svn.yoursite.com/path/to/repo/foo as your trunk, and so on. However, in case 5 it references the root of the repo as trunk. === Authors To convert all your svn authors to git format, create a file somewhere on your system with the list of conversions to make, one per line, for example: jcoglan = James Coglan <jcoglan@never-you-mind.com> stnick = Santa Claus <nicholas@lapland.com> Then pass an +authors+ option to +svn2git+ pointing to your file: svn2git https://repos.com/myproject authors=~/authors.txt Alternatively, you can place the authors file into ~/.svn2git/authors and svn2git will load it out of there. This allows you to build up one authors file for all your projects and have it loaded for each repository that you migrate.
This feature is coming soon. Sit tight!