svn2git 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog.markdown CHANGED
@@ -1,3 +1,10 @@
1
+ # 2.2.1
2
+
3
+ This is a critical bugfix release if your repository has tags. Thanks to David Zülke (dzuelke) for the patches making up this release.
4
+
5
+ * Added the ability to specify an end revision for migration (thanks dzuelke).
6
+ * Fixed an issue with initial conversion if the repo had tags (thanks dzuelke).
7
+
1
8
  # 2.2.0 - 2012-01-25
2
9
 
3
10
  Thanks to Craig Hobbs (craigahobbs) and Simon Chiang (thinkerbot) for the patches making up this release.
@@ -9,13 +16,13 @@
9
16
 
10
17
  # 2.1.2 - 2011-12-28
11
18
 
12
- * Fixed a regression in improperly quoting branch names (thanks ziangsong)
19
+ * Fixed a regression in improperly quoting branch names (thanks ziangsong).
13
20
 
14
21
  # 2.1.1 - 2011-12-27
15
22
 
16
- * Fixed SVN branch detection (thanks thinkerbot)
17
- * Stop processing when a git subprocess fails (thanks thinkerbot)
18
- * Fixed an issue with SVN branches containing shell special characters (thanks sleicht)
23
+ * Fixed SVN branch detection (thanks thinkerbot).
24
+ * Stop processing when a git subprocess fails (thanks thinkerbot).
25
+ * Fixed an issue with SVN branches containing shell special characters (thanks sleicht).
19
26
 
20
27
  # 2.1.0 - 2011-04-03
21
28
 
data/README.markdown CHANGED
@@ -124,6 +124,10 @@ one of them.
124
124
 
125
125
  $ svn2git http://svn.example.com/path/to/repo --revision <<starting_revision_number>>
126
126
 
127
+ 9. You need to migrate starting at a specific svn revision number, ending at a specific revision number.
128
+
129
+ $ svn2git http://svn.example.com/path/to/repo --revision <<starting_revision_number>>:<<ending_revision_number>>
130
+
127
131
  The above will create a git repository in the current directory with the git
128
132
  version of the svn repository. Hence, you need to make a directory that you
129
133
  want your new git repo to exist in, change into it and then run one of the
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 2
3
3
  :minor: 2
4
- :patch: 0
4
+ :patch: 1
5
5
  :build:
@@ -101,7 +101,7 @@ module Svn2Git
101
101
  options[:nominimizeurl] = true
102
102
  end
103
103
 
104
- opts.on('--revision REV', 'Start importing from SVN revision') do |revision|
104
+ opts.on('--revision START_REV[:END_REV]', 'Start importing from SVN revision START_REV; optionally end at END_REV') do |revision|
105
105
  options[:revision] = revision
106
106
  end
107
107
 
@@ -181,7 +181,11 @@ module Svn2Git
181
181
  run_command("git config --local svn.authorsfile #{authors}") unless authors.nil?
182
182
 
183
183
  cmd = "git svn fetch "
184
- cmd += "-r #{revision}:HEAD " unless revision.nil?
184
+ unless revision.nil?
185
+ range = revision.split(":")
186
+ range[1] = "HEAD" unless range[1]
187
+ cmd += "-r #{range[0]}:#{range[1]} "
188
+ end
185
189
  unless exclude.empty?
186
190
  # Add exclude paths to the command line; some versions of git support
187
191
  # this for fetch only, later also for init.
@@ -211,8 +215,8 @@ module Svn2Git
211
215
 
212
216
  def fix_tags
213
217
  current = {}
214
- current['user.name'] = run_command("git config --local --get user.name")
215
- current['user.email'] = run_command("git config --local --get user.email")
218
+ current['user.name'] = run_command("git config --local --get user.name", false)
219
+ current['user.email'] = run_command("git config --local --get user.email", false)
216
220
 
217
221
  @tags.each do |tag|
218
222
  tag = tag.strip
@@ -228,13 +232,16 @@ module Svn2Git
228
232
  end
229
233
 
230
234
  ensure
231
- current.each_pair do |name, value|
232
- # If a line was read, then there was a config value so restore it.
233
- # Otherwise unset the value because originally there was none.
234
- if value[-1] == "\n"
235
- run_command("git config --local #{name} '#{value.chomp("\n")}'")
236
- else
237
- run_command("git config --local --unset #{name}")
235
+ # We only change the git config values if there are @tags available. So it stands to reason we should revert them only in that case.
236
+ unless @tags.empty?
237
+ current.each_pair do |name, value|
238
+ # If a line was read, then there was a config value so restore it.
239
+ # Otherwise unset the value because originally there was none.
240
+ if value.strip != ''
241
+ run_command("git config --local #{name} '#{value.strip}'")
242
+ else
243
+ run_command("git config --local --unset #{name}")
244
+ end
238
245
  end
239
246
  end
240
247
  end
@@ -278,7 +285,7 @@ module Svn2Git
278
285
  run_command("git gc")
279
286
  end
280
287
 
281
- def run_command(cmd)
288
+ def run_command(cmd, exit_on_error=true)
282
289
  log "Running command: #{cmd}"
283
290
 
284
291
  ret = ''
@@ -291,7 +298,7 @@ module Svn2Git
291
298
  end
292
299
  end
293
300
 
294
- unless $?.exitstatus == 0
301
+ if exit_on_error && ($?.exitstatus != 0)
295
302
  $stderr.puts "command failed:\n#{cmd}"
296
303
  exit -1
297
304
  end
data/svn2git.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "svn2git"
8
- s.version = "2.2.0"
8
+ s.version = "2.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["James Coglan", "Kevin Menard"]
12
- s.date = "2012-01-25"
12
+ s.date = "2012-02-25"
13
13
  s.email = "nirvdrum@gmail.com"
14
14
  s.executables = ["svn2git"]
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svn2git
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-01-25 00:00:00.000000000 Z
13
+ date: 2012-02-25 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description:
16
16
  email: nirvdrum@gmail.com