svn2git 2.3.2 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ChangeLog.markdown +10 -0
- data/README.markdown +10 -5
- data/VERSION.yml +4 -4
- data/lib/svn2git/migration.rb +37 -15
- data/svn2git.gemspec +10 -10
- metadata +33 -53
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6288171a5042a47ab1f9355f5beeb9671436c5b5
|
4
|
+
data.tar.gz: 94c00b0071c912bc66e4cc5a10f7d99fe9973710
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cc234ce7131b7c60952c29c4f63e37c933e1ba6719ad699c946aa5f7d9f5b10cc18322b155689f12db76809bfbd2b8672b7da8762efe5a80b8f2f9e9d9f1a98c
|
7
|
+
data.tar.gz: 9a653aac4a7fbfb31751413244675f4f57ebd8258dd925b9c4f9302995a45f85fcfbebbdc4e33be41dde79ca1b01820c61bbd465143887899fcb7ef94a0ce06b
|
data/ChangeLog.markdown
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# 2.4.0 - 2016-10-30
|
2
|
+
|
3
|
+
This release introduces the ability to supply a password for SVN repositories that can't authenticate by other means.
|
4
|
+
It also adds the ability to specify the '--branches' and '--tags' arguments multiple times to better support those with
|
5
|
+
more complicated SVN repository layouts.
|
6
|
+
|
7
|
+
* Added support for the '--password' option for authentication (thanks edpbx).
|
8
|
+
* Added the ability to specify the '--branches' and '--tags' arguments multiple times (thanks pdf).
|
9
|
+
* Fixed a problem with processing of the '--exclude' argument (improper quoting internally) (thanks pdf).
|
10
|
+
|
1
11
|
# 2.3.2 - 2014-06-08
|
2
12
|
|
3
13
|
This is a bugfix release. It fixes issues running with Windows using MRI ruby and fixes a problem with Ruby 1.8.7.
|
data/README.markdown
CHANGED
@@ -66,7 +66,7 @@ Installation
|
|
66
66
|
|
67
67
|
Make sure you have git, git-svn, and ruby installed. svn2git is a ruby wrapper around git's native SVN support through git-svn. It is possible to have git installed without git-svn installed, so please do verify that you can run `$ git svn` successfully. For a Debian-based system, the installation of the prerequisites would look like:
|
68
68
|
|
69
|
-
$ sudo apt-get install git-core git-svn ruby
|
69
|
+
$ sudo apt-get install git-core git-svn ruby
|
70
70
|
|
71
71
|
Once you have the necessary software on your system, you can install svn2git through rubygems, which will add the `svn2git` command to your PATH.
|
72
72
|
|
@@ -118,6 +118,10 @@ one of them.
|
|
118
118
|
|
119
119
|
$ svn2git http://svn.example.com/path/to/repo --username <<user_with_perms>>
|
120
120
|
|
121
|
+
If this doesn't cooperate and you need to specify a password on the command-line:
|
122
|
+
|
123
|
+
$ svn2git http://svn.example.com/path/to/repo --username <<user_with_perms>> --password <<password>>
|
124
|
+
|
121
125
|
8. You need to migrate starting at a specific svn revision number.
|
122
126
|
|
123
127
|
$ svn2git http://svn.example.com/path/to/repo --revision <<starting_revision_number>>
|
@@ -176,11 +180,11 @@ repository which name on its own line. This would allow you to easily
|
|
176
180
|
redirect the output of this command sequence to `~/.svn2git/authors` and have
|
177
181
|
a very good starting point for your mapping.
|
178
182
|
|
179
|
-
$ svn log --quiet | grep -E "r[0-9]+ \| .+ \|" | cut -d'|' -f2 | sed 's
|
183
|
+
$ svn log --quiet | grep -E "r[0-9]+ \| .+ \|" | cut -d'|' -f2 | sed 's/ //g' | sort | uniq
|
180
184
|
|
181
185
|
Or, for a remote URL:
|
182
186
|
|
183
|
-
$ svn log --quiet http://path/to/root/of/project | grep -E "r[0-9]+ \| .+ \|" | cut -d'|' -f2 | sed 's
|
187
|
+
$ svn log --quiet http://path/to/root/of/project | grep -E "r[0-9]+ \| .+ \|" | cut -d'|' -f2 | sed 's/ //g' | sort | uniq
|
184
188
|
|
185
189
|
Debugging
|
186
190
|
---------
|
@@ -202,9 +206,10 @@ Options Reference
|
|
202
206
|
Specific options:
|
203
207
|
--rebase Instead of cloning a new project, rebase an existing one against SVN
|
204
208
|
--username NAME Username for transports that needs it (http(s), svn)
|
209
|
+
--password PASS Password for transports that needs it (http(s), svn)
|
205
210
|
--trunk TRUNK_PATH Subpath to trunk from repository URL (default: trunk)
|
206
|
-
--branches BRANCHES_PATH Subpath to branches from repository URL (default: branches)
|
207
|
-
--tags TAGS_PATH Subpath to tags from repository URL (default: tags)
|
211
|
+
--branches BRANCHES_PATH Subpath to branches from repository URL (default: branches); can be used multiple times
|
212
|
+
--tags TAGS_PATH Subpath to tags from repository URL (default: tags); can be used multiple times
|
208
213
|
--rootistrunk Use this if the root level of the repo is equivalent to the trunk and there are no tags or branches
|
209
214
|
--notrunk Do not import anything from trunk
|
210
215
|
--nobranches Do not try to import any branches
|
data/VERSION.yml
CHANGED
data/lib/svn2git/migration.rb
CHANGED
@@ -47,11 +47,12 @@ module Svn2Git
|
|
47
47
|
options[:nominimizeurl] = false
|
48
48
|
options[:rootistrunk] = false
|
49
49
|
options[:trunk] = 'trunk'
|
50
|
-
options[:branches] =
|
51
|
-
options[:tags] =
|
50
|
+
options[:branches] = []
|
51
|
+
options[:tags] = []
|
52
52
|
options[:exclude] = []
|
53
53
|
options[:revision] = nil
|
54
54
|
options[:username] = nil
|
55
|
+
options[:password] = nil
|
55
56
|
options[:rebasebranch] = false
|
56
57
|
|
57
58
|
if File.exists?(File.expand_path(DEFAULT_AUTHORS_FILE))
|
@@ -74,16 +75,20 @@ module Svn2Git
|
|
74
75
|
options[:username] = username
|
75
76
|
end
|
76
77
|
|
78
|
+
opts.on('--password PASSWORD', 'Password for transports that need it (http(s), svn)') do |password|
|
79
|
+
options[:password] = password
|
80
|
+
end
|
81
|
+
|
77
82
|
opts.on('--trunk TRUNK_PATH', 'Subpath to trunk from repository URL (default: trunk)') do |trunk|
|
78
83
|
options[:trunk] = trunk
|
79
84
|
end
|
80
85
|
|
81
|
-
opts.on('--branches BRANCHES_PATH', 'Subpath to branches from repository URL (default: branches)') do |branches|
|
82
|
-
options[:branches]
|
86
|
+
opts.on('--branches BRANCHES_PATH', 'Subpath to branches from repository URL (default: branches); can be used multiple times') do |branches|
|
87
|
+
options[:branches] << branches
|
83
88
|
end
|
84
89
|
|
85
|
-
opts.on('--tags TAGS_PATH', 'Subpath to tags from repository URL (default: tags)') do |tags|
|
86
|
-
options[:tags]
|
90
|
+
opts.on('--tags TAGS_PATH', 'Subpath to tags from repository URL (default: tags); can be used multiple times') do |tags|
|
91
|
+
options[:tags] << tags
|
87
92
|
end
|
88
93
|
|
89
94
|
opts.on('--rootistrunk', 'Use this if the root level of the repo is equivalent to the trunk and there are no tags or branches') do
|
@@ -172,30 +177,47 @@ module Svn2Git
|
|
172
177
|
exclude = @options[:exclude]
|
173
178
|
revision = @options[:revision]
|
174
179
|
username = @options[:username]
|
180
|
+
password = @options[:password]
|
175
181
|
|
176
182
|
if rootistrunk
|
177
183
|
# Non-standard repository layout. The repository root is effectively 'trunk.'
|
178
184
|
cmd = "git svn init --prefix=svn/ "
|
179
|
-
cmd += "--username
|
185
|
+
cmd += "--username='#{username}' " unless username.nil?
|
186
|
+
cmd += "--password='#{password}' " unless password.nil?
|
180
187
|
cmd += "--no-metadata " unless metadata
|
181
188
|
if nominimizeurl
|
182
189
|
cmd += "--no-minimize-url "
|
183
190
|
end
|
184
|
-
cmd += "--trunk
|
191
|
+
cmd += "--trunk='#{@url}'"
|
185
192
|
run_command(cmd, true, true)
|
186
193
|
|
187
194
|
else
|
188
195
|
cmd = "git svn init --prefix=svn/ "
|
189
196
|
|
190
197
|
# Add each component to the command that was passed as an argument.
|
191
|
-
cmd += "--username
|
198
|
+
cmd += "--username='#{username}' " unless username.nil?
|
199
|
+
cmd += "--password='#{password}' " unless password.nil?
|
192
200
|
cmd += "--no-metadata " unless metadata
|
193
201
|
if nominimizeurl
|
194
202
|
cmd += "--no-minimize-url "
|
195
203
|
end
|
196
|
-
cmd += "--trunk
|
197
|
-
|
198
|
-
|
204
|
+
cmd += "--trunk='#{trunk}' " unless trunk.nil?
|
205
|
+
unless tags.nil?
|
206
|
+
# Fill default tags here so that they can be filtered later
|
207
|
+
tags = ['tags'] if tags.empty?
|
208
|
+
# Process default or user-supplied tags
|
209
|
+
tags.each do |tag|
|
210
|
+
cmd += "--tags='#{tag}' "
|
211
|
+
end
|
212
|
+
end
|
213
|
+
unless branches.nil?
|
214
|
+
# Fill default branches here so that they can be filtered later
|
215
|
+
branches = ['branches'] if branches.empty?
|
216
|
+
# Process default or user-supplied branches
|
217
|
+
branches.each do |branch|
|
218
|
+
cmd += "--branches='#{branch}' "
|
219
|
+
end
|
220
|
+
end
|
199
221
|
|
200
222
|
cmd += @url
|
201
223
|
|
@@ -216,11 +238,11 @@ module Svn2Git
|
|
216
238
|
regex = []
|
217
239
|
unless rootistrunk
|
218
240
|
regex << "#{trunk}[/]" unless trunk.nil?
|
219
|
-
regex << "#{
|
220
|
-
regex << "#{
|
241
|
+
tags.each{|tag| regex << "#{tag}[/][^/]+[/]"} unless tags.nil? or tags.empty?
|
242
|
+
branches.each{|branch| regex << "#{branch}[/][^/]+[/]"} unless branches.nil? or branches.empty?
|
221
243
|
end
|
222
244
|
regex = '^(?:' + regex.join('|') + ')(?:' + exclude.join('|') + ')'
|
223
|
-
cmd += "
|
245
|
+
cmd += "--ignore-paths='#{regex}' "
|
224
246
|
end
|
225
247
|
run_command(cmd, true, true)
|
226
248
|
|
data/svn2git.gemspec
CHANGED
@@ -2,16 +2,17 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: svn2git 2.4.0 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "2.
|
8
|
+
s.name = "svn2git"
|
9
|
+
s.version = "2.4.0"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["James Coglan", "Kevin Menard"]
|
12
|
-
s.date =
|
13
|
-
s.
|
14
|
-
s.email = %q{nirvdrum@gmail.com}
|
14
|
+
s.date = "2016-10-30"
|
15
|
+
s.email = "nirvdrum@gmail.com"
|
15
16
|
s.executables = ["svn2git"]
|
16
17
|
s.extra_rdoc_files = [
|
17
18
|
"ChangeLog.markdown",
|
@@ -31,14 +32,13 @@ Gem::Specification.new do |s|
|
|
31
32
|
"test/escape_quotes_test.rb",
|
32
33
|
"test/test_helper.rb"
|
33
34
|
]
|
34
|
-
s.homepage =
|
35
|
+
s.homepage = "https://github.com/nirvdrum/svn2git"
|
35
36
|
s.licenses = ["MIT"]
|
36
|
-
s.
|
37
|
-
s.
|
38
|
-
s.summary = %q{A tool for migrating svn projects to git}
|
37
|
+
s.rubygems_version = "2.5.1"
|
38
|
+
s.summary = "A tool for migrating svn projects to git"
|
39
39
|
|
40
40
|
if s.respond_to? :specification_version then
|
41
|
-
s.specification_version =
|
41
|
+
s.specification_version = 4
|
42
42
|
|
43
43
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
44
|
s.add_development_dependency(%q<minitest>, [">= 0"])
|
metadata
CHANGED
@@ -1,48 +1,39 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: svn2git
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 3
|
9
|
-
- 2
|
10
|
-
version: 2.3.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.4.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- James Coglan
|
14
8
|
- Kevin Menard
|
15
9
|
autorequire:
|
16
10
|
bindir: bin
|
17
11
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2016-10-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
23
15
|
name: minitest
|
24
|
-
|
25
|
-
|
26
|
-
none: false
|
27
|
-
requirements:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
28
18
|
- - ">="
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
version: "0"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
34
21
|
type: :development
|
35
|
-
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
36
28
|
description:
|
37
29
|
email: nirvdrum@gmail.com
|
38
|
-
executables:
|
30
|
+
executables:
|
39
31
|
- svn2git
|
40
32
|
extensions: []
|
41
|
-
|
42
|
-
extra_rdoc_files:
|
33
|
+
extra_rdoc_files:
|
43
34
|
- ChangeLog.markdown
|
44
35
|
- README.markdown
|
45
|
-
files:
|
36
|
+
files:
|
46
37
|
- ChangeLog.markdown
|
47
38
|
- MIT-LICENSE
|
48
39
|
- README.markdown
|
@@ -55,39 +46,28 @@ files:
|
|
55
46
|
- test/commands_test.rb
|
56
47
|
- test/escape_quotes_test.rb
|
57
48
|
- test/test_helper.rb
|
58
|
-
has_rdoc: true
|
59
49
|
homepage: https://github.com/nirvdrum/svn2git
|
60
|
-
licenses:
|
50
|
+
licenses:
|
61
51
|
- MIT
|
52
|
+
metadata: {}
|
62
53
|
post_install_message:
|
63
54
|
rdoc_options: []
|
64
|
-
|
65
|
-
require_paths:
|
55
|
+
require_paths:
|
66
56
|
- lib
|
67
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
-
|
69
|
-
requirements:
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
70
59
|
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
version: "0"
|
76
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
|
-
requirements:
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
79
64
|
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
|
82
|
-
segments:
|
83
|
-
- 0
|
84
|
-
version: "0"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
85
67
|
requirements: []
|
86
|
-
|
87
68
|
rubyforge_project:
|
88
|
-
rubygems_version:
|
69
|
+
rubygems_version: 2.5.1
|
89
70
|
signing_key:
|
90
|
-
specification_version:
|
71
|
+
specification_version: 4
|
91
72
|
summary: A tool for migrating svn projects to git
|
92
73
|
test_files: []
|
93
|
-
|