rscm 0.3.16 → 0.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.
@@ -52,13 +52,8 @@ module RSCM
52
52
  file = parse_file(entry)
53
53
  next if file.nil?
54
54
  file.path = parse_path(entries[0])
55
-
56
55
  file.status = RevisionFile::ADDED if file.native_revision_identifier =~ /1\.1$/
57
-
58
- revision = revisions.add(file)
59
- # CVS doesn't have revision for revisions, use
60
- # Fisheye-style revision
61
- # revision.native_revision_identifier = "MAIN:#{file.developer}:#{file.time.utc.strftime('%Y%m%d%H%M%S')}" if revision
56
+ revisions.add(file)
62
57
  end
63
58
  nil
64
59
  end
@@ -83,10 +78,9 @@ module RSCM
83
78
  raise "can't parse: #{file_entry}" if file_entry =~ REVISION_SEPARATOR
84
79
 
85
80
  file_entry_lines = file_entry.split(/\r?\n/)
86
- file = RevisionFile.new
87
81
 
82
+ file = RevisionFile.new
88
83
  file.native_revision_identifier = extract_match(file_entry_lines[0], /revision (.*)$/)
89
-
90
84
  file.previous_native_revision_identifier = determine_previous_native_revision_identifier(file.native_revision_identifier)
91
85
 
92
86
  time = extract_required_match(file_entry_lines[1], /date: (.*?)(;|$)/)
@@ -203,7 +203,7 @@ module RSCM
203
203
 
204
204
  # Administrative files that should be ignored when counting files.
205
205
  def ignore_paths
206
- return [/MT/, /\.mt-attrs/]
206
+ [/MT/, /\.mt-attrs/]
207
207
  end
208
208
 
209
209
  private
@@ -25,101 +25,56 @@ module RSCM
25
25
  @username = ""
26
26
  @password = ""
27
27
  end
28
+
29
+ def to_identifier(raw_identifier)
30
+ raw_identifier.to_i
31
+ end
28
32
 
29
- def add(relative_filename)
30
- svn(@checkout_dir, "add #{relative_filename}")
33
+ def add(relative_filename, options={})
34
+ svn("add #{relative_filename}", options)
31
35
  end
32
36
 
33
- def move(relative_src, relative_dest)
34
- svn(@checkout_dir, "mv #{relative_src} #{relative_dest}")
37
+ def move(relative_src, relative_dest, options={})
38
+ svn("mv #{relative_src} #{relative_dest}", options)
35
39
  end
36
40
 
37
41
  def transactional?
38
42
  true
39
43
  end
40
44
 
41
- def checkout(to_identifier=nil)
42
- checkout_dir = PathConverter.filepath_to_nativepath(@checkout_dir, false)
43
- mkdir_p(@checkout_dir)
44
- checked_out_files = []
45
- path_regex = /^[A|D|U]\s+(.*)/
46
- if(checked_out?)
47
- svn(@checkout_dir, update_command(to_identifier)) do |line|
48
- if(line =~ path_regex)
49
- absolute_path = "#{checkout_dir}/#{$1}"
50
- relative_path = $1.chomp
51
- relative_path = relative_path.gsub(/\\/, "/") if WINDOWS
52
- checked_out_files << relative_path
53
- yield relative_path if block_given?
54
- end
55
- end
56
- else
57
- svn(@checkout_dir, checkout_command(to_identifier)) do |line|
58
- if(line =~ path_regex)
59
- native_absolute_path = $1
60
- absolute_path = PathConverter.nativepath_to_filepath(native_absolute_path)
61
- if(File.exist?(absolute_path) && !File.directory?(absolute_path))
62
- native_checkout_dir = PathConverter.filepath_to_nativepath(@checkout_dir, false)
63
- relative_path = native_absolute_path[native_checkout_dir.length+1..-1].chomp
64
- relative_path = relative_path.gsub(/\\/, "/")
65
- checked_out_files << relative_path
66
- yield relative_path if block_given?
67
- end
68
- end
69
- end
70
- end
71
- checked_out_files
72
- end
73
-
74
- def uptodate?(identifier)
45
+ def uptodate?(identifier, options={})
75
46
  if(!checked_out?)
76
47
  false
77
48
  else
78
- rev = identifier ? identifier : head_revision_identifier
79
- local_revision_identifier == rev
49
+ rev = identifier.nil? ? head_revision_identifier(options) : identifier
50
+ local_revision_identifier(options) == rev
80
51
  end
81
52
  end
82
53
 
83
- def commit(message)
84
- svn(@checkout_dir, commit_command(message))
54
+ def commit(message, options={})
55
+ svn(commit_command(message), options)
85
56
  # We have to do an update to get the local revision right
86
- svn(@checkout_dir, "update")
57
+ svn("update", options)
87
58
  end
88
59
 
89
60
  def label
90
61
  local_revision_identifier.to_s
91
62
  end
92
63
 
93
- def diff(file, &block)
64
+ def diff(file, options={}, &block)
94
65
  cmd = "svn diff --revision #{file.previous_native_revision_identifier}:#{file.native_revision_identifier} \"#{url}/#{file.path}\""
95
- Better.popen(cmd) do |io|
66
+ execute(cmd, options) do |io|
96
67
  return(yield(io))
97
68
  end
98
69
  end
99
70
 
100
- def open(revision_file, &block)
71
+ def open(revision_file, options, &block)
101
72
  cmd = "svn cat #{url}/#{revision_file.path}@#{revision_file.native_revision_identifier}"
102
- Better.popen(cmd) do |io|
73
+ execute(cmd, options) do |io|
103
74
  return(yield(io))
104
75
  end
105
76
  end
106
77
 
107
- def ls(relative_path)
108
- prefix = relative_path == "" ? relative_path : "#{relative_path}/"
109
- cmd = "svn ls #{url}/#{relative_path}"
110
- Better.popen(cmd) do |io|
111
- io.collect do |line|
112
- name = line.strip
113
- dir = false
114
- if(name =~ /(.*)\/$/)
115
- name = $1
116
- dir = true
117
- end
118
- HistoricFile.new("#{prefix}#{name}", dir, self)
119
- end
120
- end
121
- end
122
-
123
78
  def can_create_central?
124
79
  local?
125
80
  end
@@ -141,7 +96,7 @@ module RSCM
141
96
  # on stdout (and an error msg on std err).
142
97
  exists = false
143
98
  cmd = "svn log #{url} -r HEAD"
144
- Better.popen(cmd) do |stdout|
99
+ execute(cmd) do |stdout|
145
100
  stdout.each_line do |line|
146
101
  exists = true
147
102
  end
@@ -161,53 +116,58 @@ module RSCM
161
116
  "hooks/post-commit"
162
117
  end
163
118
 
164
- def create_central
119
+ def create_central(options={})
120
+ options = options.dup.merge({:dir => svnrootdir})
165
121
  native_path = PathConverter.filepath_to_nativepath(svnrootdir, true)
166
122
  mkdir_p(PathConverter.nativepath_to_filepath(native_path))
167
- svnadmin(svnrootdir, "create #{native_path}")
123
+ svnadmin("create #{native_path}", options)
168
124
  if(@path && @path != "")
125
+ options = options.dup.merge({:dir => "."})
169
126
  # create the directories
170
127
  paths = @path.split("/")
171
128
  paths.each_with_index do |p,i|
172
129
  p = paths[0..i]
173
130
  u = "#{repourl}/#{p.join('/')}"
174
- svn(".", "mkdir #{u} -m \"Adding directories\"")
131
+ svn("mkdir #{u} -m \"Adding directories\"", options)
175
132
  end
176
133
  end
177
134
  end
178
135
 
179
- def install_trigger(trigger_command, trigger_files_checkout_dir)
136
+ def install_trigger(trigger_command, trigger_files_checkout_dir, options={})
180
137
  if (WINDOWS)
181
- install_win_trigger(trigger_command, trigger_files_checkout_dir)
138
+ install_win_trigger(trigger_command, trigger_files_checkout_dir, options)
182
139
  else
183
- install_unix_trigger(trigger_command, trigger_files_checkout_dir)
140
+ install_unix_trigger(trigger_command, trigger_files_checkout_dir, options)
184
141
  end
185
142
  end
186
143
 
187
- def uninstall_trigger(trigger_command, trigger_files_checkout_dir)
144
+ def uninstall_trigger(trigger_command, trigger_files_checkout_dir, options={})
188
145
  File.comment_out(post_commit_file, /#{Regexp.escape(trigger_command)}/, nil)
189
146
  end
190
147
 
191
- def trigger_installed?(trigger_command, trigger_files_checkout_dir)
148
+ def trigger_installed?(trigger_command, trigger_files_checkout_dir, options={})
192
149
  return false unless File.exist?(post_commit_file)
193
150
  not_already_commented = LineEditor.comment_out(File.new(post_commit_file), /#{Regexp.escape(trigger_command)}/, "# ", "")
194
151
  not_already_commented
195
152
  end
196
153
 
197
- def import_central(dir, message)
198
- import_cmd = "import #{url} -m \"#{message}\""
199
- svn(dir, import_cmd)
200
- end
201
-
202
- def revisions(from_identifier, to_identifier=Time.infinity, relative_path="")
203
- # Return empty revision if the requested revision doesn't exist yet.
204
- return Revisions.new if(from_identifier.is_a?(Integer) && head_revision_identifier <= from_identifier)
205
-
154
+ def import_central(options)
155
+ import_cmd = "import #{url} -m \"#{options[:message]}\""
156
+ svn(import_cmd, options)
157
+ end
158
+
159
+ def revisions(from_identifier, options={})
160
+ options = {
161
+ :from_identifier => from_identifier,
162
+ :to_identifier => Time.infinity,
163
+ :relative_path => "",
164
+ :dir => Dir.pwd
165
+ }.merge(options)
166
+
206
167
  checkout_dir = PathConverter.filepath_to_nativepath(@checkout_dir, false)
207
168
  revisions = nil
208
- command = "svn #{changes_command(from_identifier, to_identifier, relative_path)}"
209
-
210
- Better.popen(command) do |stdout|
169
+ command = "svn #{changes_command(options[:from_identifier], options[:to_identifier], options[:relative_path])}"
170
+ execute(command, options) do |stdout|
211
171
  parser = SubversionLogParser.new(stdout, @url)
212
172
  revisions = parser.parse_revisions
213
173
  end
@@ -226,31 +186,47 @@ module RSCM
226
186
  result
227
187
  end
228
188
 
189
+ protected
190
+
191
+ def checkout_silent(to_identifier, options)
192
+ checkout_dir = PathConverter.filepath_to_nativepath(@checkout_dir, false)
193
+ mkdir_p(@checkout_dir)
194
+ if(checked_out?)
195
+ svn(update_command(to_identifier), options)
196
+ else
197
+ svn(checkout_command(to_identifier), options)
198
+ end
199
+ end
200
+
201
+ def ignore_paths
202
+ [/\.svn\/.*/]
203
+ end
204
+
229
205
  private
230
206
 
231
- def local_revision_identifier
207
+ def local_revision_identifier(options)
232
208
  local_revision_identifier = nil
233
- svn(@checkout_dir, "info") do |line|
209
+ svn("info", options) do |line|
234
210
  if(line =~ /Revision: ([0-9]*)/)
235
211
  return $1.to_i
236
212
  end
237
213
  end
238
214
  end
239
215
 
240
- def head_revision_identifier
216
+ def head_revision_identifier(options)
241
217
  # This command only seems to yield any changesets if the url is the root of
242
218
  # the repo, which we don't know in the case where path is not specified (likely)
243
219
  # We therefore don't specify it and get the latest revision from the full url instead.
244
220
  # cmd = "svn log #{login_options} #{repourl} -r HEAD"
245
221
  cmd = "svn log #{login_options} #{url}"
246
- Better.popen(cmd) do |stdout|
222
+ execute(cmd, options) do |stdout|
247
223
  parser = SubversionLogParser.new(stdout, @url)
248
224
  revisions = parser.parse_revisions
249
- revisions[0].identifier.to_i
225
+ revisions[0].identifier
250
226
  end
251
227
  end
252
228
 
253
- def install_unix_trigger(trigger_command, damagecontrol_install_dir)
229
+ def install_unix_trigger(trigger_command, damagecontrol_install_dir, options)
254
230
  post_commit_exists = File.exists?(post_commit_file)
255
231
  mode = post_commit_exists ? File::APPEND|File::WRONLY : File::CREAT|File::WRONLY
256
232
  begin
@@ -267,7 +243,7 @@ module RSCM
267
243
  end
268
244
  end
269
245
 
270
- def install_win_trigger(trigger_command, damagecontrol_install_dir)
246
+ def install_win_trigger(trigger_command, damagecontrol_install_dir, options)
271
247
  post_commit_exists = File.exists?(post_commit_file)
272
248
  mode = post_commit_exists ? File::APPEND|File::WRONLY : File::CREAT|File::WRONLY
273
249
  begin
@@ -291,22 +267,19 @@ module RSCM
291
267
  result
292
268
  end
293
269
 
294
- def svnadmin(dir, cmd, &proc)
295
- svncommand("svnadmin", dir, cmd, &proc)
270
+ def svnadmin(cmd, options={}, &proc)
271
+ svncommand("svnadmin", cmd, options, &proc)
296
272
  end
297
273
 
298
- def svn(dir, cmd, &proc)
299
- svncommand("svn", dir, cmd, &proc)
274
+ def svn(cmd, options={}, &proc)
275
+ svncommand("svn", cmd, options, &proc)
300
276
  end
301
277
 
302
- def svncommand(executable, dir, cmd, &proc)
278
+ def svncommand(executable, cmd, options, &proc)
303
279
  command_line = "#{executable} #{cmd}"
304
- dir = File.expand_path(dir)
305
- with_working_dir(dir) do
306
- Better.popen(command_line) do |stdout|
307
- stdout.each_line do |line|
308
- yield line if block_given?
309
- end
280
+ execute(command_line, options) do |stdout|
281
+ stdout.each_line do |line|
282
+ yield line if block_given?
310
283
  end
311
284
  end
312
285
  end
data/lib/rscm/time_ext.rb CHANGED
@@ -7,5 +7,6 @@ class Time
7
7
  def infinity
8
8
  Time.utc(2036)
9
9
  end
10
+
10
11
  end
11
- end
12
+ end
@@ -0,0 +1,13 @@
1
+ module RSCM
2
+ module VERSION
3
+ MAJOR = 0
4
+ MINOR = 4
5
+ TINY = 0
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+
9
+ NAME = "RSCM"
10
+ FULLNAME = "Ruby Source Control Management"
11
+ URL = "http://rscm.rubyforge.org/"
12
+ end
13
+ end
@@ -4,8 +4,10 @@ require 'rscm/path_converter'
4
4
  require 'rscm/difftool_test'
5
5
 
6
6
  module RSCM
7
+ DEFAULT_OPTIONS = {:stdout => 'target/stdout.log', :stderr => 'target/stderr.log'}.freeze
7
8
 
8
9
  module GenericSCMTests
10
+
9
11
  include FileUtils
10
12
 
11
13
  def teardown
@@ -47,15 +49,17 @@ module RSCM
47
49
  other_checkout_dir = "#{work_dir}/OtherWorkingCopy"
48
50
  repository_dir = "#{work_dir}/repository"
49
51
  scm = create_scm(repository_dir, "damagecontrolled")
52
+ scm.default_options = DEFAULT_OPTIONS
50
53
  scm.checkout_dir = checkout_dir
51
54
 
52
55
  other_scm = create_scm(repository_dir, "damagecontrolled")
56
+ other_scm.default_options = DEFAULT_OPTIONS
53
57
  other_scm.checkout_dir = other_checkout_dir
54
58
 
55
59
  raise "This scm (#{scm.name}) can't create 'central' repositories." unless scm.can_create_central?
56
60
 
57
61
  # 1
58
- scm.create_central
62
+ scm.create_central
59
63
  @scm = scm
60
64
 
61
65
  # 2
@@ -66,25 +70,18 @@ module RSCM
66
70
  assert(!scm.uptodate?(nil))
67
71
 
68
72
  # 4
69
- yielded_files = []
70
- files = scm.checkout do |file_name|
71
- yielded_files << file_name
72
- end
73
-
73
+ files = scm.checkout nil
74
+
74
75
  # 5
75
- assert_equal(4, files.length)
76
- assert_equal(files, yielded_files)
76
+ assert_equal(4, files.length, files.join("\n"))
77
77
  files.sort!
78
- yielded_files.sort!
79
- assert_equal(files, yielded_files)
80
-
81
78
  assert_equal("build.xml", files[0])
82
79
  assert_equal("project.xml", files[1])
83
80
  assert_equal("src/java/com/thoughtworks/damagecontrolled/Thingy.java", files[2])
84
81
  assert_equal("src/test/com/thoughtworks/damagecontrolled/ThingyTestCase.java", files[3])
85
82
 
86
83
  # 6
87
- initial_revisions = scm.revisions(nil, nil)
84
+ initial_revisions = scm.revisions(nil)
88
85
  assert_equal("imported\nsources", initial_revisions[0].message)
89
86
  # Subversion seems to add a revision with message "Added directories"
90
87
  #assert_equal(1, initial_revisions.length)
@@ -97,21 +94,20 @@ module RSCM
97
94
  change_file(scm, "#{checkout_dir}/build.xml")
98
95
  change_file(scm, "#{checkout_dir}/src/java/com/thoughtworks/damagecontrolled/Thingy.java")
99
96
 
100
- # 9
101
- other_scm.checkout
102
- # 10
103
- assert(other_scm.uptodate?(nil))
104
- # 11
105
- assert(scm.uptodate?(nil))
106
- # 12
97
+ assert(!other_scm.uptodate?(initial_revisions.latest.identifier))
98
+ other_scm.checkout nil
99
+ assert(other_scm.uptodate?(initial_revisions.latest.identifier))
100
+
101
+ sleep(1)
107
102
  scm.commit("changed\nsomething")
108
103
 
109
104
  # 13
110
105
  revisions = scm.revisions(initial_revisions.latest.identifier)
106
+ assert_equal(1, revisions.length, "Actual revisions:\n" + revisions.collect{|cs| cs.to_s}.join("\n"))
107
+
111
108
  assert(revisions[0].identifier)
112
- assert_equal(1, revisions.length, revisions.collect{|cs| cs.to_s})
113
109
  revision = revisions[0]
114
- assert_equal(2, revision.length)
110
+ assert_equal(2, revision.length, "Actual files:\n" + revision.collect{|file| file.path}.join("\n"))
115
111
 
116
112
  assert_equal("changed\nsomething", revision.message)
117
113
 
@@ -134,7 +130,7 @@ module RSCM
134
130
  assert(scm.uptodate?(revisions.latest.identifier))
135
131
 
136
132
  # 15
137
- files = other_scm.checkout.sort
133
+ files = other_scm.checkout(nil).sort
138
134
  assert_equal(2, files.length)
139
135
  assert_equal("build.xml", files[0])
140
136
  assert_equal("src/java/com/thoughtworks/damagecontrolled/Thingy.java", files[1])
@@ -151,19 +147,6 @@ module RSCM
151
147
  assert_equal(1, revisions.length)
152
148
  assert_equal(1, revisions[0].length)
153
149
  assert_equal("src/java/com/thoughtworks/damagecontrolled/Hello.txt", revisions[0][0].path)
154
-
155
- # 19
156
- root_children = scm.rootdir.children
157
- assert_equal "build.xml", root_children[0].relative_path
158
- assert !root_children[0].directory?
159
- assert_equal "project.xml", root_children[1].relative_path
160
- assert !root_children[1].directory?
161
- assert_equal "src", root_children[2].relative_path
162
- assert root_children[2].directory?
163
-
164
- src_children = root_children[2].children
165
- assert_equal "src/java", src_children[0].relative_path
166
- assert src_children[0].directory?
167
150
  end
168
151
 
169
152
  def test_create_destroy
@@ -171,11 +154,12 @@ module RSCM
171
154
  checkout_dir = "#{work_dir}/checkout"
172
155
  repository_dir = "#{work_dir}/repository"
173
156
  scm = create_scm(repository_dir, "killme")
157
+ scm.default_options = DEFAULT_OPTIONS
174
158
  scm.checkout_dir = checkout_dir
175
159
 
176
160
  (1..3).each do
177
161
  assert(!scm.central_exists?)
178
- scm.create_central
162
+ scm.create_central
179
163
  assert(scm.central_exists?)
180
164
  scm.destroy_central
181
165
  end
@@ -189,6 +173,7 @@ module RSCM
189
173
  repository_dir = "#{work_dir}/repository"
190
174
  trigger_proof = "#{work_dir}/trigger_proof"
191
175
  scm = create_scm(repository_dir, "damagecontrolled")
176
+ scm.default_options = DEFAULT_OPTIONS
192
177
  scm.checkout_dir = checkout_dir
193
178
  scm.create_central
194
179
  @scm = scm
@@ -206,7 +191,7 @@ module RSCM
206
191
 
207
192
  # Verify that the trigger works
208
193
  import_damagecontrolled(scm, "#{work_dir}/damagecontrolled")
209
- scm.checkout
194
+ scm.checkout nil
210
195
  scm.install_trigger(trigger_command, trigger_files_checkout_dir)
211
196
  assert(!File.exist?(trigger_proof))
212
197
 
@@ -219,12 +204,13 @@ module RSCM
219
204
  checkout_dir = "#{work_dir}/checkout"
220
205
  repository_dir = "#{work_dir}/repository"
221
206
  scm = create_scm(repository_dir, "damagecontrolled")
207
+ scm.default_options = DEFAULT_OPTIONS
222
208
  scm.checkout_dir = checkout_dir
223
- scm.create_central
209
+ scm.create_central
224
210
  @scm = scm
225
211
 
226
212
  import_damagecontrolled(scm, "#{work_dir}/damagecontrolled")
227
- scm.checkout
213
+ scm.checkout nil
228
214
  add_or_edit_and_commit_file(scm, checkout_dir, "before.txt", "Before label")
229
215
  before_cs = scm.revisions(Time.epoch)
230
216
 
@@ -244,12 +230,13 @@ module RSCM
244
230
  checkout_dir = "#{work_dir}/checkout"
245
231
  repository_dir = "#{work_dir}/repository"
246
232
  scm = create_scm(repository_dir, "damagecontrolled")
233
+ scm.default_options = DEFAULT_OPTIONS
247
234
  scm.checkout_dir = checkout_dir
248
235
  scm.create_central
249
236
  @scm = scm
250
237
 
251
238
  import_damagecontrolled(scm, "#{work_dir}/damagecontrolled")
252
- scm.checkout
239
+ scm.checkout nil
253
240
 
254
241
  from = "src/java/com/thoughtworks/damagecontrolled/Thingy.java"
255
242
  to = "src/java/com/thoughtworks/damagecontrolled/Mooky.java"
@@ -258,7 +245,7 @@ module RSCM
258
245
  assert(File.exist?(scm.checkout_dir + "/" + to))
259
246
  rm_rf(scm.checkout_dir + "/" + to)
260
247
  assert(!File.exist?(scm.checkout_dir + "/" + to))
261
- scm.checkout
248
+ scm.checkout nil
262
249
  assert(File.exist?(scm.checkout_dir + "/" + to))
263
250
  end
264
251
 
@@ -281,8 +268,9 @@ EOF
281
268
  repository_dir = "#{work_dir}/repository"
282
269
  import_dir = "#{work_dir}/import/diffing"
283
270
  scm = create_scm(repository_dir, "diffing")
271
+ scm.default_options = DEFAULT_OPTIONS
284
272
  scm.checkout_dir = checkout_dir
285
- scm.create_central
273
+ scm.create_central
286
274
  @scm = scm
287
275
 
288
276
  mkdir_p(import_dir)
@@ -290,8 +278,8 @@ EOF
290
278
  io.puts("just some")
291
279
  io.puts("initial content")
292
280
  end
293
- scm.import_central(import_dir, "Initial revision")
294
- scm.checkout
281
+ scm.import_central :dir=>import_dir, :message=>"Importing"
282
+ scm.checkout nil
295
283
  initial_revision = scm.revisions(nil).latest
296
284
  sleep(1)
297
285
 
@@ -328,7 +316,7 @@ EOF
328
316
 
329
317
  # TODO: make separate test. Make helper method for the cumbersome setup!
330
318
  historic_afile = scm.file("afile.txt", false)
331
- revision_files = historic_afile.revision_files
319
+ revision_files = historic_afile.revision_files
332
320
  assert_equal(Array, revision_files.class)
333
321
  assert(revision_files.length >= 2)
334
322
  assert(revision_files.length <= 3)
@@ -345,7 +333,7 @@ EOF
345
333
  cp_r(path, dirname)
346
334
  todelete = Dir.glob("#{import_copy_dir}/**/.svn")
347
335
  rm_rf(todelete)
348
- scm.import_central(import_copy_dir, "imported\nsources")
336
+ scm.import_central :dir => import_copy_dir, :message => "imported\nsources"
349
337
  end
350
338
 
351
339
  def change_file(scm, file)
@@ -379,13 +367,14 @@ EOF
379
367
  checkout_dir = "#{work_dir}/LabelTest"
380
368
  repository_dir = "#{work_dir}/repository"
381
369
  scm = create_scm(repository_dir, "damagecontrolled")
370
+ scm.default_options = DEFAULT_OPTIONS
382
371
  scm.checkout_dir = checkout_dir
383
- scm.create_central
372
+ scm.create_central
384
373
  @scm = scm
385
374
 
386
375
  import_damagecontrolled(scm, "#{work_dir}/damagecontrolled")
387
376
 
388
- scm.checkout
377
+ scm.checkout nil
389
378
 
390
379
  # TODO: introduce a Revision class which implements comparator methods
391
380
  return
@@ -395,7 +384,7 @@ EOF
395
384
  )
396
385
  change_file(scm, "#{checkout_dir}/build.xml")
397
386
  scm.commit("changed something")
398
- scm.checkout
387
+ scm.checkout nil
399
388
  assert_equal(
400
389
  "2",
401
390
  scm.label