rscm 0.4.3 → 0.4.4

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.
@@ -1,6 +1,11 @@
1
1
  require 'fileutils'
2
2
 
3
3
  module RSCM
4
+
5
+ def method_name
6
+ /\`([^\']+)\'/.match(caller.first)[1]
7
+ end
8
+
4
9
  def new_temp_dir(suffix="", basedir=File.dirname(__FILE__) + "/../../target")
5
10
  identifier = identifier.to_s
6
11
  identifier.gsub!(/\(|:|\)/, '_')
@@ -2,7 +2,7 @@ module RSCM
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
 
@@ -0,0 +1,4 @@
1
+ ---
2
+ RSCM::SubversionTest: subversion_rscm
3
+ RSCM::CvsTest: cvs_metaproject
4
+ RSCM::PerforceTest: put your perforce dir here
@@ -0,0 +1,13 @@
1
+ ---
2
+ - CHANGES
3
+ - MIT-LICENSE
4
+ - README
5
+ - Rakefile
6
+ - TODO
7
+ - doc/base_attrs.rdoc
8
+ - lib/rake/contrib/xforge.rb
9
+ - lib/rake/contrib/xforge/base.rb
10
+ - lib/rake/contrib/xforge/release.rb
11
+ - lib/xforge.rb
12
+ - lib/xforge/version_parser.rb
13
+ - test/xforge/version_parser_specification.rb
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:RSCM::Revisions
2
+ revisions:
3
+ - !ruby/object:RSCM::Revision
4
+ developer: aslak_hellesoy
5
+ files:
6
+ - !ruby/object:RSCM::RevisionFile
7
+ native_revision_identifier: "1.1"
8
+ path: .cvsignore
9
+ previous_native_revision_identifier:
10
+ status: ADDED
11
+ - !ruby/object:RSCM::RevisionFile
12
+ native_revision_identifier: "1.3"
13
+ path: CHANGES
14
+ previous_native_revision_identifier: "1.2"
15
+ status: MODIFIED
16
+ - !ruby/object:RSCM::RevisionFile
17
+ native_revision_identifier: "1.2"
18
+ path: README
19
+ previous_native_revision_identifier: "1.1"
20
+ status: MODIFIED
21
+ - !ruby/object:RSCM::RevisionFile
22
+ native_revision_identifier: "1.4"
23
+ path: Rakefile
24
+ previous_native_revision_identifier: "1.3"
25
+ status: MODIFIED
26
+ - !ruby/object:RSCM::RevisionFile
27
+ native_revision_identifier: "1.2"
28
+ path: lib/xforge.rb
29
+ previous_native_revision_identifier: "1.1"
30
+ status: MODIFIED
31
+ - !ruby/object:RSCM::RevisionFile
32
+ native_revision_identifier: "1.3"
33
+ path: lib/rake/contrib/xforge/release.rb
34
+ previous_native_revision_identifier: "1.2"
35
+ status: MODIFIED
36
+ - !ruby/object:RSCM::RevisionFile
37
+ native_revision_identifier: "1.1"
38
+ path: lib/xforge/version_parser.rb
39
+ previous_native_revision_identifier:
40
+ status: ADDED
41
+ - !ruby/object:RSCM::RevisionFile
42
+ native_revision_identifier: "1.1"
43
+ path: test/xforge/version_parser_specification.rb
44
+ previous_native_revision_identifier:
45
+ status: ADDED
46
+ identifier: &id001 2005-08-12 03:22:09 Z
47
+ message: Added support for CHANGELOG parsing
48
+ time: *id001
49
+ - !ruby/object:RSCM::Revision
50
+ developer: aslak_hellesoy
51
+ files:
52
+ - !ruby/object:RSCM::RevisionFile
53
+ native_revision_identifier: "1.4"
54
+ path: CHANGES
55
+ previous_native_revision_identifier: "1.3"
56
+ status: MODIFIED
57
+ - !ruby/object:RSCM::RevisionFile
58
+ native_revision_identifier: "1.5"
59
+ path: Rakefile
60
+ previous_native_revision_identifier: "1.4"
61
+ status: MODIFIED
62
+ - !ruby/object:RSCM::RevisionFile
63
+ native_revision_identifier: "1.1"
64
+ path: xforge.tmproj
65
+ previous_native_revision_identifier:
66
+ status: ADDED
67
+ - !ruby/object:RSCM::RevisionFile
68
+ native_revision_identifier: "1.3"
69
+ path: lib/xforge.rb
70
+ previous_native_revision_identifier: "1.2"
71
+ status: MODIFIED
72
+ - !ruby/object:RSCM::RevisionFile
73
+ native_revision_identifier: "1.1"
74
+ path: lib/scm_web/view_cvs.rb
75
+ previous_native_revision_identifier:
76
+ status: ADDED
77
+ - !ruby/object:RSCM::RevisionFile
78
+ native_revision_identifier: "1.1"
79
+ path: lib/xforge/host.rb
80
+ previous_native_revision_identifier:
81
+ status: ADDED
82
+ - !ruby/object:RSCM::RevisionFile
83
+ native_revision_identifier: "1.1"
84
+ path: lib/xforge/project.rb
85
+ previous_native_revision_identifier:
86
+ status: ADDED
87
+ - !ruby/object:RSCM::RevisionFile
88
+ native_revision_identifier: "1.1"
89
+ path: lib/xforge/rubyforge.rb
90
+ previous_native_revision_identifier:
91
+ status: ADDED
92
+ - !ruby/object:RSCM::RevisionFile
93
+ native_revision_identifier: "1.1"
94
+ path: lib/xforge/session.rb
95
+ previous_native_revision_identifier:
96
+ status: ADDED
97
+ - !ruby/object:RSCM::RevisionFile
98
+ native_revision_identifier: "1.1"
99
+ path: lib/xforge/sourceforge.rb
100
+ previous_native_revision_identifier:
101
+ status: ADDED
102
+ - !ruby/object:RSCM::RevisionFile
103
+ native_revision_identifier: "1.1"
104
+ path: lib/xforge/xfile.rb
105
+ previous_native_revision_identifier:
106
+ status: ADDED
107
+ - !ruby/object:RSCM::RevisionFile
108
+ native_revision_identifier: "1.1"
109
+ path: lib/xforge/xforge.rd
110
+ previous_native_revision_identifier:
111
+ status: ADDED
112
+ - !ruby/object:RSCM::RevisionFile
113
+ native_revision_identifier: "1.1"
114
+ path: test/xforge/rubyforge_specification.rb
115
+ previous_native_revision_identifier:
116
+ status: ADDED
117
+ - !ruby/object:RSCM::RevisionFile
118
+ native_revision_identifier: "1.1"
119
+ path: test/xforge/sourceforge_specification.rb
120
+ previous_native_revision_identifier:
121
+ status: ADDED
122
+ - !ruby/object:RSCM::RevisionFile
123
+ native_revision_identifier: "1.1"
124
+ path: test/xforge/test_helper.rb
125
+ previous_native_revision_identifier:
126
+ status: ADDED
127
+ identifier: &id002 2005-08-13 01:23:50 Z
128
+ message: refactored into seperate files and added scm support
129
+ time: *id002
@@ -0,0 +1,3 @@
1
+ --- !ruby/object:RSCM::Cvs
2
+ root: ":pserver:anonymous@rubyforge.org:/var/cvs/xforge"
3
+ mod: xforge
@@ -0,0 +1,104 @@
1
+ module RSCM
2
+ module Compatibility
3
+ # These tests verify that an RSCM adapter implements
4
+ # the API that is required in order to use the adapter with DamageControl
5
+ module DamageControlMinimal
6
+ include Difftool
7
+
8
+ def setup
9
+ config_yml = File.dirname(__FILE__) + '/config.yml'
10
+ config = YAML::load_file(config_yml)
11
+ raise "#{config_yml} must have an entry for #{self.class.name}" if config[self.class.name].nil?
12
+ @testdata_dir = File.dirname(__FILE__) + '/' + config[self.class.name]
13
+ raise "#{@testdata_dir} directory doesn't exist" unless File.directory?(@testdata_dir)
14
+ @scm = YAML::load_file(@testdata_dir + '/scm.yml')
15
+ end
16
+
17
+ def test_should_get_revisions_by_revision_identifier
18
+ suffix = method_name
19
+ do_verify_revisions_by_property(suffix, :identifier)
20
+ end
21
+
22
+ def test_should_get_revisions_by_time
23
+ # Subversion 1.3.0 currently has an unresolved bug:
24
+ # http://subversion.tigris.org/issues/show_bug.cgi?id=1642
25
+ #
26
+ # svn log http://buildpatterns.com/svn/repos/rscm/trunk/test/ --revision {"2006-03-03 11:55:55"}:{"2006-03-03 18:24:08"}
27
+ #
28
+ # returns revisions outside the lower bounds.
29
+ # we therefore exclude this test when running svn tests - it's not that important since DC only uses timestamps
30
+ # on the first run for a project, and it's not important that it is accurate.
31
+ unless self.class.name == 'RSCM::SubversionTest'
32
+ suffix = method_name
33
+ do_verify_revisions_by_property(suffix, :time)
34
+ end
35
+ end
36
+
37
+ def do_verify_revisions_by_property(suffix, something)
38
+ dir = File.expand_path(RSCM.new_temp_dir(suffix))
39
+ options = {:stdout => "#{dir}/stdout.log", :stderr => "#{dir}/stderr.log"}.freeze
40
+ @scm.checkout_dir = "#{dir}/checkout"
41
+
42
+ expected_yaml = @testdata_dir + '/revisions.yml'
43
+ expected = YAML::load_file(expected_yaml)
44
+ opts = options.dup.merge :to_identifier => expected.last.send(something)
45
+ actual = @scm.revisions(expected.first.send(something)-1, opts)
46
+
47
+ if(expected != actual)
48
+ assert_equal_with_diff(expected_yaml, actual.to_yaml, "See logs in #{dir}")
49
+ end
50
+
51
+ opts = options.dup.merge :to_identifier => expected.last.send(something)
52
+ later = @scm.revisions(expected.first.send(something), opts)
53
+ assert_not_equal(expected, later)
54
+
55
+ opts = options.dup.merge :to_identifier => expected.last.send(something)
56
+ earlier = @scm.revisions(expected.first.send(something)+1, opts)
57
+ assert_not_equal(expected, earlier)
58
+ end
59
+
60
+ def test_should_checkout_sources_to_particular_revision
61
+ dirname = method_name
62
+ dir = File.expand_path(RSCM.new_temp_dir(dirname))
63
+ options = {:stdout => "#{dir}/stdout.log", :stderr => "#{dir}/stderr.log"}.freeze
64
+ revisions_yml = @testdata_dir + '/revisions.yml'
65
+ revisions = YAML::load_file(revisions_yml)
66
+ @scm.checkout_dir = RSCM.new_temp_dir("#{dirname}_0")
67
+ files_0 = @scm.checkout(revisions[0].identifier, options)
68
+ expected_yaml = @testdata_dir + "/files_0.yml"
69
+ expected = YAML::load_file(expected_yaml)
70
+ if(expected != files_0)
71
+ assert_equal_with_diff(expected_yaml, files_0.to_yaml)
72
+ end
73
+
74
+ # We can predict what the next checked out files should be
75
+ expected_files = files_0.dup
76
+ revisions[1].each do |file|
77
+ expected_files.delete(file.path) if file.status == "DELETED"
78
+ expected_files.push(file.path) if file.status == "ADDED"
79
+ end
80
+ expected_files.sort!
81
+ if(files_0 == expected_files)
82
+ flunk "The 2nd revision in #{revisions_yml} must have at least one added or deleted file"
83
+ end
84
+
85
+ @scm.checkout_dir = RSCM.new_temp_dir("#{dirname}_1")
86
+ files_1 = @scm.checkout(revisions[1].identifier, options)
87
+ assert_equal(expected_files, files_1)
88
+
89
+ # Now check out to the 1st revision again and verify files were removed
90
+ added_paths = revisions[1].find_all{|rf| rf.status=="ADDED"}.collect{|rf| rf.path}
91
+ assert added_paths.size > 0
92
+ added_paths.each do |p|
93
+ full_path = @scm.checkout_dir + '/' + p
94
+ assert File.exist?(full_path), "Should exist: #{full_path}"
95
+ end
96
+ @scm.checkout(revisions[0].identifier, options)
97
+ added_paths.each do |p|
98
+ full_path = @scm.checkout_dir + '/' + p
99
+ assert !File.exist?(full_path), "Should no longer exist: #{full_path}"
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -1,12 +1,11 @@
1
1
  require 'fileutils'
2
2
  require 'rscm/tempdir'
3
3
  require 'rscm/path_converter'
4
- require 'rscm/difftool_test'
4
+ require 'rscm/difftool'
5
5
 
6
- module RSCM
7
- DEFAULT_OPTIONS = {:stdout => 'target/stdout.log', :stderr => 'target/stderr.log'}.freeze
8
-
9
- module GenericSCMTests
6
+ module RSCM
7
+ module Compatibility
8
+ module Full
10
9
 
11
10
  include FileUtils
12
11
 
@@ -130,10 +129,7 @@ module RSCM
130
129
  assert(scm.uptodate?(revisions.latest.identifier))
131
130
 
132
131
  # 15
133
- files = other_scm.checkout(nil).sort
134
- assert_equal(2, files.length)
135
- assert_equal("build.xml", files[0])
136
- assert_equal("src/java/com/thoughtworks/damagecontrolled/Thingy.java", files[1])
132
+ other_scm.checkout(nil).sort
137
133
 
138
134
  # 16
139
135
  assert(other_scm.uptodate?(nil))
@@ -179,7 +175,7 @@ module RSCM
179
175
  @scm = scm
180
176
 
181
177
  # Verify that install/uninstall works
182
- touch = WINDOWS ? PathConverter.filepath_to_nativepath(File.dirname(__FILE__) + "../../../bin/touch.exe", true) : "touch"
178
+ touch = WINDOWS ? PathConverter.filepath_to_nativepath(File.dirname(__FILE__) + "/../../../bin/touch.exe", true) : `which touch`.strip
183
179
  trigger_command = "#{touch} " + PathConverter.filepath_to_nativepath(trigger_proof, true)
184
180
  trigger_files_checkout_dir = File.expand_path("#{checkout_dir}/../trigger")
185
181
  (1..3).each do |i|
@@ -327,7 +323,7 @@ EOF
327
323
 
328
324
  def import_damagecontrolled(scm, import_copy_dir)
329
325
  mkdir_p(import_copy_dir)
330
- path = File.dirname(__FILE__) + "/../../testproject/damagecontrolled"
326
+ path = File.dirname(__FILE__) + "/../../../testproject/damagecontrolled"
331
327
  path = File.expand_path(path)
332
328
  dirname = File.dirname(import_copy_dir)
333
329
  cp_r(path, dirname)
@@ -391,8 +387,5 @@ EOF
391
387
  )
392
388
  end
393
389
  end
394
-
395
- module ApplyLabelTest
396
-
397
- end
390
+ end
398
391
  end
@@ -0,0 +1,35 @@
1
+ ---
2
+ - rscm/apply_label_scm_tests.rb
3
+ - rscm/command_line_test.rb
4
+ - rscm/compatibility/damage_control_minimal.rb
5
+ - rscm/compatibility/full.rb
6
+ - rscm/difftool_test.rb
7
+ - rscm/file_after_edit
8
+ - rscm/file_ext.rb
9
+ - rscm/file_to_edit
10
+ - rscm/line_editor_test.rb
11
+ - rscm/mockit_test.rb
12
+ - rscm/parser_test.rb
13
+ - rscm/path_converter_test.rb
14
+ - rscm/revision_fixture.rb
15
+ - rscm/revision_test.rb
16
+ - rscm/revisions.yaml
17
+ - rscm/scm/cvs-dataforge.log
18
+ - rscm/scm/cvs-test.log
19
+ - rscm/scm/cvs_log_parser_test.rb
20
+ - rscm/scm/cvs_test.rb
21
+ - rscm/scm/darcs_log_parser_test.rb
22
+ - rscm/scm/darcs_test.rb
23
+ - rscm/scm/keys
24
+ - rscm/scm/monotone_log_parser_test.rb
25
+ - rscm/scm/monotone_test.rb
26
+ - rscm/scm/mooky_test.rb
27
+ - rscm/scm/p4client_test.rb
28
+ - rscm/scm/perforce_test.rb
29
+ - rscm/scm/star_team.rb
30
+ - rscm/scm/subversion_log_parser_test.rb
31
+ - rscm/scm/subversion_test.rb
32
+ - rscm/scm/svn-cargo.log
33
+ - rscm/scm/svn-growl.log
34
+ - rscm/scm/svn-growl2.log
35
+ - rscm/scm/svn-proxytoys.log
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:RSCM::Revisions
2
+ revisions:
3
+ - !ruby/object:RSCM::Revision
4
+ developer: aslak
5
+ files:
6
+ - !ruby/object:RSCM::RevisionFile
7
+ native_revision_identifier: 156
8
+ path: rscm/compatibility/damage_control_minimal.rb
9
+ previous_native_revision_identifier: 155
10
+ status: ADDED
11
+ - !ruby/object:RSCM::RevisionFile
12
+ native_revision_identifier: 156
13
+ path: rscm/compatibility/full.rb
14
+ previous_native_revision_identifier: 155
15
+ status: MOVED
16
+ - !ruby/object:RSCM::RevisionFile
17
+ native_revision_identifier: 156
18
+ path: rscm/generic_scm_tests.rb
19
+ previous_native_revision_identifier: 155
20
+ status: DELETED
21
+ - !ruby/object:RSCM::RevisionFile
22
+ native_revision_identifier: 156
23
+ path: rscm/scm/cvs_log_parser_test.rb
24
+ previous_native_revision_identifier: 155
25
+ status: MODIFIED
26
+ - !ruby/object:RSCM::RevisionFile
27
+ native_revision_identifier: 156
28
+ path: rscm/scm/cvs_test.rb
29
+ previous_native_revision_identifier: 155
30
+ status: MODIFIED
31
+ - !ruby/object:RSCM::RevisionFile
32
+ native_revision_identifier: 156
33
+ path: rscm/scm/perforce_test.rb
34
+ previous_native_revision_identifier: 155
35
+ status: MODIFIED
36
+ - !ruby/object:RSCM::RevisionFile
37
+ native_revision_identifier: 156
38
+ path: rscm/scm/subversion_test.rb
39
+ previous_native_revision_identifier: 155
40
+ status: MODIFIED
41
+ identifier: 156
42
+ message: reorganisations for compat suites
43
+ time: 2006-03-03 17:55:54 Z
44
+ - !ruby/object:RSCM::Revision
45
+ developer: aslak
46
+ files:
47
+ - !ruby/object:RSCM::RevisionFile
48
+ native_revision_identifier: 157
49
+ path: rscm/compatibility/damage_control_minimal.rb
50
+ previous_native_revision_identifier: 156
51
+ status: MODIFIED
52
+ - !ruby/object:RSCM::RevisionFile
53
+ native_revision_identifier: 157
54
+ path: rscm/compatibility/subversion_rscm/files.yml
55
+ previous_native_revision_identifier: 156
56
+ status: ADDED
57
+ - !ruby/object:RSCM::RevisionFile
58
+ native_revision_identifier: 157
59
+ path: rscm/compatibility/subversion_rscm/revisions.yml
60
+ previous_native_revision_identifier: 156
61
+ status: ADDED
62
+ - !ruby/object:RSCM::RevisionFile
63
+ native_revision_identifier: 157
64
+ path: rscm/compatibility/subversion_rscm/scm.yml
65
+ previous_native_revision_identifier: 156
66
+ status: ADDED
67
+ identifier: 157
68
+ message: Added settings for subversion dc compat test
69
+ time: 2006-03-03 18:24:07 Z
@@ -0,0 +1,2 @@
1
+ --- !ruby/object:RSCM::Subversion
2
+ url: http://buildpatterns.com/svn/repos/rscm/trunk/test