rscm 0.3.16 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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