• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    Shell
  • License
    MIT License
  • Created almost 16 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

history preserving svn to git migration using git-svn

Installation:

Place these scripts anywhere in $PATH (e.g. create symlinks in /usr/local/bin) and make sure they are executable, just like any other script. The git command will know how to find them.

Usage:

See my detailed blog post for a how-to.

In brief:

  1. Install (above), then git svn clone your repo, preferably using Sam Vilain's [svn-merge-attrs branch] (http://github.com/samv/git/tree/svn-merge-attrs), using --prefix svn. This assumes standard layout.

  2. Inside the repo run git svn-abandon-fix-refs

  3. Create .git/info/grafts file for merge commits (might not be necessary with the svn-merge-attrs branch). This is just if you have any svn merges that occurred between branches.

  4. Run git-svn-abandon-cleanup

The resulting repository should have only refs/heads/* and tags. All svn tags are recreated as annotated tags.

git-svn-id: and svk message pollution is cleaned up.

When you have a merge commit that is not recognized as such, the grafts file can be used to add additional parents, preserving history information.

Troubleshooting:

You may get this error message:

% git svn-abandon-fix-refs
git: 'svn-abandon-fix-refs' is not a git-command. See 'git --help'.

This means you haven't placed those scripts in your PATH.

Alternatives

If this script is too slow for a large repository, or doesn't handle something complicated look into Snerp Vortex:

http://github.com/rcaputo/snerp-vortex

For a simpler approach, several svn2git scripts exist, in both Ruby and Perl.

Maintenance:

These commands are more for abandoning SVN in favour of git and getting as clean a history as possible. Maintenance is just like a normal git repository.

After git svn-abandon-cleanup has been run, git svn rebase can't be run anymore, so you can't bring it up to date without keeping the old SVN repo around and grafting things to the conversion.

More Repositories

1

kiokudb

KiokuDB Core
Perl
72
star
2

try-tiny

Perl
38
star
3

class-mop

Mirror of Class-MOP.git
Perl
27
star
4

kiokudb-backend-dbi

DBI backend for KiokuDB
Perl
21
star
5

git-snapshot

19
star
6

git-site-perl

Hooks to keep site_perl in git
Perl
18
star
7

search-gin

Generalized indexing for Perl
Perl
15
star
8

jquery-gist-upgrade

Upgrade pre tags to pretty gists
Perl
13
star
9

moosex-app-cmd

Perl
10
star
10

Sub-Call-Tail

tail call modifier
Perl
10
star
11

xs-object-magic

Perl
10
star
12

kiokudb-backend-bdb

BDB backend for KiokuDB
Perl
9
star
13

catalyst-model-kiokudb

Perl
9
star
14

data-visitor

Perl
8
star
15

kiokux-model

Perl
8
star
16

class-workflow

Perl
8
star
17

kiokudb-backend-files

Transactional file based backend for KiokuDB
Perl
7
star
18

kiokudb-backend-couchdb

CouchDB backend for KiokuDB
Perl
7
star
19

continuation-delimited

delimited continuations for Perl 5
Perl
7
star
20

moosex-clone

Perl
7
star
21

kiokux-user

A generic user object role for KiokuDB
Perl
7
star
22

tehslow-http-anyevent

verbose HTTP load tester (detailed timing events)
Perl
7
star
23

test-tempdir

Perl
6
star
24

devel-globaldestruction

C++
6
star
25

hydrant

data pimping service
Perl
6
star
26

mouse

my fork of the mouse repo. you actually want git://jules.scsys.co.uk/gitmo/Mouse.git
6
star
27

Sub-Call-Recur

Clojure's recur() special form for Perl
Perl
6
star
28

moosex-types-datetime

Perl
6
star
29

coro

my patches to Coro
Perl
5
star
30

json-rpc-common

Perl
5
star
31

crypt-random-source

Perl
5
star
32

moosex-types-uri

5
star
33

Cache-Profile

Perl
5
star
34

data-stream-bulk

Perl
5
star
35

Devel-StackTrace-XS

Perl
5
star
36

tehslow

event log helper objects
Perl
5
star
37

devel-fixme

Perl
5
star
38

moosex-types-varianttable

Perl
5
star
39

devel-gladiator

Devel::Gladiator
C
5
star
40

kiokudb-navigator

KiokuDB::Navigator
5
star
41

term-vt102-boundless

Perl
4
star
42

task-kiokudb

Task::KiokuDB
Perl
4
star
43

data-uuid-libuuid

C
4
star
44

html-zoom

Perl
4
star
45

perl-pretty

pretty printing library
Perl
4
star
46

imago

A website for my mom
Perl
4
star
47

Cache-Ref

Perl
4
star
48

catalyst-controller-leaktracker

Perl
4
star
49

template-plugin-json

Perl
4
star
50

io-handle-util

Perl
4
star
51

moosex-types-authen-passphrase

Perl
4
star
52

data-thunk

Perl
4
star
53

devel-partialdump

Perl
4
star
54

fungi

3
star
55

tie-refhash

Perl
3
star
56

magical-hooker-decorate

Perl
3
star
57

tie-refhash-weak

Perl
3
star
58

veryshiny

meta slide software
3
star
59

log-dispatch-config-testlog

Perl
3
star
60

moosex-blessed-reconstruct

Perl
3
star
61

poe-filter-json-incr

Perl
3
star
62

smartmatch-sugar

Perl
3
star
63

class-methodcache

C
3
star
64

moosex-traits

traits supporting constructor for Moose
Perl
3
star
65

net-amazon-s3-cas

Store static asset files by content hash in S3
Perl
3
star
66

crypt-util

Perl
3
star
67

Message-Match

Perl
3
star
68

moosex-types-set-object

Perl
3
star
69

catalyst-plugin-leaktracker

Perl
3
star
70

git-rsync-dir

3
star
71

hash-util-fieldhash-compat

Perl
3
star
72

www-makepassword

PasswordMaker knock off (not yet complete, will be moved to app-www-passwordmaker)
Perl
3
star
73

verby

Perl
3
star
74

perl-tags-moose

Perl
3
star
75

devel-events

Perl
3
star
76

methods-checknames

Perl
3
star
77

poe-component-supervisor

Perl
3
star
78

moosex-compile

3
star
79

directory-transactional

Directory::Transactional
Perl
3
star
80

ingy_says

2
star
81

poe-api-peek

Peek into the internals of a running POE environment
Perl
2
star
82

devel-sub-which

Perl
2
star
83

devel-argnames

Perl
2
star
84

devel-events-filter-size

Perl
2
star
85

digest-cmac

Perl
2
star
86

b-simple

2
star
87

devel-stderr-indent

Perl
2
star
88

xml-sax-expat-incremental

Perl
2
star
89

devel-events-generator-classpublisher

Perl
2
star
90

constant-fromglobal

Perl
2
star
91

xml-libxslt-easy

Perl
2
star
92

verby-action-untar

2
star
93

ipod-squish

Perl
2
star
94

verby-action-startstopdaemon

2
star
95

poe-filter-jsonrpc-stream

Perl
2
star
96

prompt-readkey

Perl
2
star
97

cache-cascade

Perl
2
star
98

crypt-random-source-weak-openssl

Perl
2
star
99

template-multipass

2
star
100

algorithm-dependency-objects

Perl
2
star