rscm 0.2.1.1404 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +34 -23
- data/Rakefile +24 -29
- data/bin/touch.exe +0 -0
- data/lib/rscm.rb +6 -3
- data/lib/rscm/annotations.rb +26 -7
- data/lib/rscm/{abstract_scm.rb → base.rb} +109 -71
- data/lib/rscm/better.rb +16 -0
- data/lib/rscm/logging.rb +11 -5
- data/lib/rscm/path_converter.rb +9 -16
- data/lib/rscm/revision.rb +201 -0
- data/lib/rscm/revision_file.rb +71 -0
- data/lib/rscm/scm/clearcase.rb +7 -7
- data/lib/rscm/scm/cvs.rb +69 -70
- data/lib/rscm/scm/cvs_log_parser.rb +29 -29
- data/lib/rscm/scm/darcs.rb +82 -34
- data/lib/rscm/scm/darcs_log_parser.rb +65 -0
- data/lib/rscm/scm/monotone.rb +249 -77
- data/lib/rscm/scm/monotone_log_parser.rb +57 -43
- data/lib/rscm/scm/mooky.rb +3 -3
- data/lib/rscm/scm/perforce.rb +196 -134
- data/lib/rscm/scm/star_team.rb +10 -10
- data/lib/rscm/scm/subversion.rb +106 -77
- data/lib/rscm/scm/subversion_log_parser.rb +76 -47
- data/lib/rscm/time_ext.rb +2 -116
- data/test/rscm/annotations_test.rb +15 -2
- data/test/rscm/{abstract_scm_test.rb → base_test.rb} +3 -3
- data/test/rscm/difftool_test.rb +9 -3
- data/test/rscm/generic_scm_tests.rb +195 -124
- data/test/rscm/revision_fixture.rb +20 -0
- data/test/rscm/revision_test.rb +129 -0
- data/test/rscm/{changesets.yaml → revisions.yaml} +10 -10
- data/test/rscm/scm/clearcase.log +608 -0
- data/test/rscm/scm/clearcase_test.rb +39 -0
- data/test/rscm/scm/cvs_log_parser_test.rb +73 -73
- data/test/rscm/scm/cvs_test.rb +1 -1
- data/test/rscm/scm/darcs_log_parser_test.rb +171 -0
- data/test/rscm/scm/monotone_log_parser_test.rb +49 -31
- data/test/rscm/scm/monotone_test.rb +3 -2
- data/test/rscm/scm/p4client_test.rb +33 -0
- data/test/rscm/scm/perforce_test.rb +25 -3
- data/test/rscm/scm/star_team.rb +9 -9
- data/test/rscm/scm/subversion_log_parser_test.rb +107 -47
- metadata +17 -13
- data/lib/multipart.rb +0 -95
- data/lib/rscm/RSS.txt +0 -41
- data/lib/rscm/changes.rb +0 -268
- data/lib/rscm/example.yaml +0 -21
- data/lib/rubyforge_file_publisher.rb +0 -176
- data/test/rscm/changes_fixture.rb +0 -20
- data/test/rscm/changes_test.rb +0 -129
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rscm/generic_scm_tests'
|
3
|
+
require 'rscm/clearcase/clearcase'
|
4
|
+
|
5
|
+
module RSCM
|
6
|
+
class ClearCaseTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@checkout_dir = "C:\\ClearCase_Storage\\viewroot\\icah_CorpAsstPlan_integration\\merchandising\\MerchandisingRandD"
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_revisions
|
13
|
+
scm = ClearCase.new
|
14
|
+
revisions = scm.revisions(@checkout_dir, Time.utc(2005,03,03,0,0,0))
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_checkout
|
18
|
+
# delete some local files (so we get some checkouts!)
|
19
|
+
build_xml = "build.xml"
|
20
|
+
actions_xml = "JavaSource/actions.xml"
|
21
|
+
File.delete("#{checkout_dir}/#{build_xml}") if File.exist?("#{checkout_dir}/#{build_xml}")
|
22
|
+
File.delete("#{checkout_dir}/#{actions_xml}") if File.exist?("#{checkout_dir}/#{actions_xml}")
|
23
|
+
|
24
|
+
scm = ClearCase.new
|
25
|
+
|
26
|
+
assert(!scm.uptodate?(@checkout_dir, Time.new.utc))
|
27
|
+
assert(!scm.uptodate?(@checkout_dir, Time.new.utc))
|
28
|
+
|
29
|
+
yielded_files = []
|
30
|
+
files = scm.checkout(@checkout_dir) do |file_name|
|
31
|
+
yielded_files << file_name
|
32
|
+
end
|
33
|
+
|
34
|
+
assert_equal(files, yielded_files)
|
35
|
+
assert_equal([build_xml, actions_xml], files)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -22,14 +22,14 @@ module RSCM
|
|
22
22
|
assert_equal(nil, CvsLogParser.new(StringIO.new("")).next_log_entry)
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
25
|
+
def test_parses_entire_log_into_revisions
|
26
26
|
File.open(File.dirname(__FILE__) + "/cvs-test.log") do |io|
|
27
27
|
@parser = CvsLogParser.new(io)
|
28
|
-
|
28
|
+
revisions = @parser.parse_revisions
|
29
29
|
|
30
|
-
assert_equal(24,
|
31
|
-
assert_match(/o YAML config \(BuildBootstrapper\)/,
|
32
|
-
assert_match(/failure/,
|
30
|
+
assert_equal(24, revisions.length)
|
31
|
+
assert_match(/o YAML config \(BuildBootstrapper\)/, revisions[1].message)
|
32
|
+
assert_match(/failure/, revisions[8].message)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -37,35 +37,35 @@ module RSCM
|
|
37
37
|
def test_jira_dc_312
|
38
38
|
File.open(File.dirname(__FILE__) + "/cvs-dataforge.log") do |io|
|
39
39
|
@parser = CvsLogParser.new(io)
|
40
|
-
|
40
|
+
revisions = @parser.parse_revisions
|
41
41
|
|
42
|
-
assert_equal(271,
|
42
|
+
assert_equal(271, revisions.length)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
47
|
-
|
48
|
-
@parser.
|
49
|
-
|
50
|
-
assert_equal(4,
|
51
|
-
assert_equal("src/ruby/damagecontrol/BuildExecutorTest.rb",
|
52
|
-
assert_match(/linux-windows galore/,
|
46
|
+
def test_parse_files
|
47
|
+
revisions = Revisions.new
|
48
|
+
@parser.parse_files(LOG_ENTRY, revisions)
|
49
|
+
revisions.sort!
|
50
|
+
assert_equal(4, revisions.length)
|
51
|
+
assert_equal("src/ruby/damagecontrol/BuildExecutorTest.rb", revisions[0][0].path)
|
52
|
+
assert_match(/linux-windows galore/, revisions[1][0].message)
|
53
53
|
end
|
54
54
|
|
55
|
-
def
|
56
|
-
change = @parser.
|
57
|
-
assert_equal("1.20", change.
|
58
|
-
assert_equal("1.19", change.
|
55
|
+
def test_sets_previous_native_revision_identifier_to_one_before_the_current
|
56
|
+
change = @parser.parse_file(CHANGE_ENTRY)
|
57
|
+
assert_equal("1.20", change.native_revision_identifier)
|
58
|
+
assert_equal("1.19", change.previous_native_revision_identifier)
|
59
59
|
end
|
60
60
|
|
61
|
-
def
|
62
|
-
assert_equal("2.2.1.1", @parser.
|
63
|
-
assert_equal(nil, @parser.
|
61
|
+
def test_can_determine_previous_native_revision_identifiers_from_tricky_input
|
62
|
+
assert_equal("2.2.1.1", @parser.determine_previous_native_revision_identifier("2.2.1.2"))
|
63
|
+
assert_equal(nil, @parser.determine_previous_native_revision_identifier("2.2.1.1"))
|
64
64
|
end
|
65
65
|
|
66
|
-
def
|
67
|
-
change = @parser.
|
68
|
-
assert_equal("1.20", change.
|
66
|
+
def test_parse_file
|
67
|
+
change = @parser.parse_file(CHANGE_ENTRY)
|
68
|
+
assert_equal("1.20", change.native_revision_identifier)
|
69
69
|
assert_equal(Time.utc(2003,11,9,17,53,37), change.time)
|
70
70
|
assert_equal("tirsen", change.developer)
|
71
71
|
assert_match(/Quiet period is configurable for each project/, change.message)
|
@@ -100,20 +100,20 @@ remove username check (doesn't work on beaver)
|
|
100
100
|
I do really want to see the url in irc, it's very, very convenient. thank you very much ;-)
|
101
101
|
EOF
|
102
102
|
|
103
|
-
def
|
104
|
-
|
105
|
-
@parser.
|
106
|
-
assert_equal(1,
|
107
|
-
assert_equal("server/damagecontrol/codehaus.rb",
|
108
|
-
assert_equal(
|
103
|
+
def test_can_parse_files_with_deleted_file
|
104
|
+
revisions = Revisions.new
|
105
|
+
@parser.parse_files(LOG_ENTRY_WITH_DELETED_FILE, revisions)
|
106
|
+
assert_equal(1, revisions.length)
|
107
|
+
assert_equal("server/damagecontrol/codehaus.rb", revisions[0][0].path)
|
108
|
+
assert_equal(RevisionFile::DELETED, revisions[0][0].status)
|
109
109
|
end
|
110
110
|
|
111
111
|
def test_log_from_e2e_test
|
112
112
|
@parser = CvsLogParser.new(StringIO.new(LOG_FROM_E2E_TEST))
|
113
|
-
|
114
|
-
assert_equal(2,
|
115
|
-
assert_match(/foo/,
|
116
|
-
assert_match(/bar/,
|
113
|
+
revisions = @parser.parse_revisions
|
114
|
+
assert_equal(2, revisions.length)
|
115
|
+
assert_match(/foo/, revisions[1].message)
|
116
|
+
assert_match(/bar/, revisions[0].message)
|
117
117
|
end
|
118
118
|
|
119
119
|
LOG_FROM_E2E_TEST = <<-EOF
|
@@ -197,17 +197,17 @@ EOF
|
|
197
197
|
@parser = CvsLogParser.new(StringIO.new(LOG_FROM_05_07_2004_19_41))
|
198
198
|
assert_equal(11, @parser.split_entries(LOG_FROM_05_07_2004_19_41).size)
|
199
199
|
assert_equal("server/damagecontrol/scm/CVS.rb", @parser.parse_path(@parser.split_entries(LOG_FROM_05_07_2004_19_41)[0]))
|
200
|
-
|
200
|
+
revisions = @parser.parse_revisions
|
201
201
|
|
202
|
-
assert_equal(10,
|
203
|
-
expected_change =
|
202
|
+
assert_equal(10, revisions.length)
|
203
|
+
expected_change = RevisionFile.new
|
204
204
|
expected_change.path = "server/damagecontrol/scm/CVS.rb"
|
205
205
|
expected_change.developer = "tirsen"
|
206
206
|
expected_change.message = "fixed some stuff in the log parser"
|
207
|
-
expected_change.
|
207
|
+
expected_change.native_revision_identifier = "1.19"
|
208
208
|
expected_change.time = Time.utc(2004, 7, 5, 9, 41, 51)
|
209
209
|
|
210
|
-
assert_equal(expected_change,
|
210
|
+
assert_equal(expected_change, revisions[9][0])
|
211
211
|
end
|
212
212
|
|
213
213
|
LOG_FROM_05_07_2004_19_41 = <<-EOF
|
@@ -257,7 +257,7 @@ debugging cvs timestamps
|
|
257
257
|
----------------------------
|
258
258
|
revision 1.12
|
259
259
|
date: 2004/07/03 19:25:19; author: rinkrank; state: Exp; lines: +20 -3
|
260
|
-
support for
|
260
|
+
support for previous_native_revision_identifier in modifications
|
261
261
|
----------------------------
|
262
262
|
revision 1.11
|
263
263
|
date: 2004/07/02
|
@@ -359,30 +359,30 @@ EOF
|
|
359
359
|
|
360
360
|
def test_can_parse_LOG_WITH_DELETIONS
|
361
361
|
@parser = CvsLogParser.new(StringIO.new(LOG_WITH_DELETIONS))
|
362
|
-
|
363
|
-
assert_equal(2,
|
364
|
-
|
365
|
-
|
366
|
-
# assert_equal("MAIN:rinkrank:20031013000454",
|
367
|
-
assert_equal(Time.utc(2003,10,13,00,04,54,0),
|
368
|
-
assert_equal("Obsolete",
|
369
|
-
assert_equal("rinkrank",
|
370
|
-
assert_equal(1,
|
371
|
-
assert_equal("build.xml",
|
372
|
-
assert_equal("1.11",
|
373
|
-
assert_equal("1.10",
|
374
|
-
assert(
|
375
|
-
|
376
|
-
|
377
|
-
# assert_equal("MAIN:rinkrank:20030725163239",
|
378
|
-
assert_equal(Time.utc(2003,07,25,16,32,39,0),
|
379
|
-
assert_equal("fixed broken url (NANO-8)",
|
380
|
-
assert_equal("rinkrank",
|
381
|
-
assert_equal(1,
|
382
|
-
assert_equal("build.xml",
|
383
|
-
assert_equal("1.10",
|
384
|
-
assert_equal("1.9",
|
385
|
-
assert_equal(
|
362
|
+
revisions = @parser.parse_revisions
|
363
|
+
assert_equal(2, revisions.length)
|
364
|
+
|
365
|
+
revision_delete = revisions[1]
|
366
|
+
# assert_equal("MAIN:rinkrank:20031013000454", revision_delete.revision)
|
367
|
+
assert_equal(Time.utc(2003,10,13,00,04,54,0), revision_delete.time)
|
368
|
+
assert_equal("Obsolete", revision_delete.message)
|
369
|
+
assert_equal("rinkrank", revision_delete.developer)
|
370
|
+
assert_equal(1, revision_delete.length)
|
371
|
+
assert_equal("build.xml", revision_delete[0].path)
|
372
|
+
assert_equal("1.11", revision_delete[0].native_revision_identifier)
|
373
|
+
assert_equal("1.10", revision_delete[0].previous_native_revision_identifier)
|
374
|
+
assert(RevisionFile::DELETED, revision_delete[0].status)
|
375
|
+
|
376
|
+
revision_fix_url = revisions[0]
|
377
|
+
# assert_equal("MAIN:rinkrank:20030725163239", revision_fix_url.revision)
|
378
|
+
assert_equal(Time.utc(2003,07,25,16,32,39,0), revision_fix_url.time)
|
379
|
+
assert_equal("fixed broken url (NANO-8)", revision_fix_url.message)
|
380
|
+
assert_equal("rinkrank", revision_fix_url.developer)
|
381
|
+
assert_equal(1, revision_fix_url.length)
|
382
|
+
assert_equal("build.xml", revision_fix_url[0].path)
|
383
|
+
assert_equal("1.10", revision_fix_url[0].native_revision_identifier)
|
384
|
+
assert_equal("1.9", revision_fix_url[0].previous_native_revision_identifier)
|
385
|
+
assert_equal(RevisionFile::MODIFIED, revision_fix_url[0].status)
|
386
386
|
end
|
387
387
|
|
388
388
|
LOG_WITH_MISSING_ENTRIES = <<EOF
|
@@ -415,8 +415,8 @@ EOF
|
|
415
415
|
|
416
416
|
def test_can_parse_LOG_WITH_MISSING_ENTRIES
|
417
417
|
@parser = CvsLogParser.new(StringIO.new(LOG_WITH_MISSING_ENTRIES))
|
418
|
-
|
419
|
-
assert_equal(0,
|
418
|
+
revisions = @parser.parse_revisions
|
419
|
+
assert_equal(0, revisions.length)
|
420
420
|
end
|
421
421
|
|
422
422
|
LOG_WITH_NEW_AND_OLD_FILE = <<EOF
|
@@ -461,12 +461,12 @@ EOF
|
|
461
461
|
|
462
462
|
def test_can_distinguish_new_file_from_old_file
|
463
463
|
@parser = CvsLogParser.new(StringIO.new(LOG_WITH_NEW_AND_OLD_FILE))
|
464
|
-
|
464
|
+
revisions = @parser.parse_revisions
|
465
465
|
|
466
|
-
assert_equal(
|
467
|
-
assert_equal(
|
468
|
-
assert_equal(
|
469
|
-
assert_equal(
|
466
|
+
assert_equal(RevisionFile::ADDED, revisions[0][0].status)
|
467
|
+
assert_equal(RevisionFile::MODIFIED, revisions[1][0].status)
|
468
|
+
assert_equal(RevisionFile::MODIFIED, revisions[2][0].status)
|
469
|
+
assert_equal(RevisionFile::ADDED, revisions[3][0].status)
|
470
470
|
end
|
471
471
|
|
472
472
|
# https://sitemesh.dev.java.net/source/browse/sitemesh/.cvsignore
|
@@ -566,8 +566,8 @@ EOF
|
|
566
566
|
|
567
567
|
def test_can_parse_logs_with_cvs_and_dashes_in_commit_message
|
568
568
|
@parser = CvsLogParser.new(StringIO.new(LOG_WITH_WEIRD_CVS_AND_MANY_DASHES))
|
569
|
-
|
570
|
-
assert_equal(6,
|
569
|
+
revisions = @parser.parse_revisions
|
570
|
+
assert_equal(6, revisions.length)
|
571
571
|
end
|
572
572
|
|
573
573
|
end
|
data/test/rscm/scm/cvs_test.rb
CHANGED
@@ -0,0 +1,171 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'stringio'
|
3
|
+
require 'rscm'
|
4
|
+
|
5
|
+
module RSCM
|
6
|
+
class DarcsLogParserTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
CHANGESET = <<EOF
|
9
|
+
<patch author='tester@test.net' date='20050327203534' local_date='Sun Mar 27 16:35:34 AST 2005' inverted='False' hash='20050327203534-4d520-baeeafb062e7f0d72ce740e1e1f5e6a203321ab4.gz'>
|
10
|
+
<name>something nice</name>
|
11
|
+
<comment>
|
12
|
+
imported
|
13
|
+
sources
|
14
|
+
</comment>
|
15
|
+
<summary>
|
16
|
+
<add_file>
|
17
|
+
build.xml
|
18
|
+
</add_file>
|
19
|
+
<add_file>
|
20
|
+
project.xml
|
21
|
+
</add_file>
|
22
|
+
<add_directory>
|
23
|
+
src
|
24
|
+
</add_directory>
|
25
|
+
<add_directory>
|
26
|
+
src/java
|
27
|
+
</add_directory>
|
28
|
+
<add_directory>
|
29
|
+
src/java/com
|
30
|
+
</add_directory>
|
31
|
+
<add_directory>
|
32
|
+
src/java/com/thoughtworks
|
33
|
+
</add_directory>
|
34
|
+
<add_directory>
|
35
|
+
src/java/com/thoughtworks/damagecontrolled
|
36
|
+
</add_directory>
|
37
|
+
<add_file>
|
38
|
+
src/java/com/thoughtworks/damagecontrolled/Thingy.java
|
39
|
+
</add_file>
|
40
|
+
<add_directory>
|
41
|
+
src/test
|
42
|
+
</add_directory>
|
43
|
+
<add_directory>
|
44
|
+
src/test/com
|
45
|
+
</add_directory>
|
46
|
+
<add_directory>
|
47
|
+
src/test/com/thoughtworks
|
48
|
+
</add_directory>
|
49
|
+
<add_directory>
|
50
|
+
src/test/com/thoughtworks/damagecontrolled
|
51
|
+
</add_directory>
|
52
|
+
<add_file>
|
53
|
+
src/test/com/thoughtworks/damagecontrolled/ThingyTestCase.java
|
54
|
+
</add_file>
|
55
|
+
</summary>
|
56
|
+
</patch>
|
57
|
+
EOF
|
58
|
+
|
59
|
+
def test_should_parse_CHANGESET_to_revision
|
60
|
+
parser = DarcsLogParser.new
|
61
|
+
revision = parser.parse_revision(StringIO.new(CHANGESET), {})
|
62
|
+
|
63
|
+
assert_equal("imported\nsources", revision.message)
|
64
|
+
assert_equal('20050327203534-4d520-baeeafb062e7f0d72ce740e1e1f5e6a203321ab4.gz', revision.identifier)
|
65
|
+
assert_equal("tester@test.net", revision.developer)
|
66
|
+
assert_equal(Time.utc(2005,3,27,20,35,34), revision.time)
|
67
|
+
assert_equal(4, revision.length)
|
68
|
+
|
69
|
+
assert_equal("build.xml", revision[0].path)
|
70
|
+
assert_equal(RevisionFile::ADDED, revision[0].status)
|
71
|
+
|
72
|
+
assert_equal("project.xml", revision[1].path)
|
73
|
+
assert_equal(RevisionFile::ADDED, revision[1].status)
|
74
|
+
|
75
|
+
assert_equal("src/java/com/thoughtworks/damagecontrolled/Thingy.java", revision[2].path)
|
76
|
+
assert_equal(RevisionFile::ADDED, revision[2].status)
|
77
|
+
|
78
|
+
assert_equal("src/test/com/thoughtworks/damagecontrolled/ThingyTestCase.java", revision[3].path)
|
79
|
+
assert_equal(RevisionFile::ADDED, revision[3].status)
|
80
|
+
end
|
81
|
+
|
82
|
+
CHANGESETS = <<EOF
|
83
|
+
<changelog>
|
84
|
+
<patch author='tester@test.net' date='20050327204037' local_date='Sun Mar 27 16:40:37 AST 2005' inverted='False' hash='20050327204037-8fc3f-49f20f511eff452541c19cf8d4b188342f226c6c.gz'>
|
85
|
+
<name>something nice</name>
|
86
|
+
<comment>
|
87
|
+
changed
|
88
|
+
something
|
89
|
+
|
90
|
+
</comment>
|
91
|
+
<summary>
|
92
|
+
<modify_file>
|
93
|
+
build.xml<removed_lines num='1'/><added_lines num='2'/>
|
94
|
+
</modify_file>
|
95
|
+
<modify_file>
|
96
|
+
src/java/com/thoughtworks/damagecontrolled/Thingy.java<removed_lines num='1'/><added_lines num='2'/>
|
97
|
+
</modify_file>
|
98
|
+
</summary>
|
99
|
+
</patch>
|
100
|
+
<patch author='tester@test.net' date='20050327203534' local_date='Sun Mar 27 16:35:34 AST 2005' inverted='False' hash='20050327203534-4d520-baeeafb062e7f0d72ce740e1e1f5e6a203321ab4.gz'>
|
101
|
+
<name>something nice</name>
|
102
|
+
<comment>
|
103
|
+
imported
|
104
|
+
sources
|
105
|
+
</comment>
|
106
|
+
<summary>
|
107
|
+
<add_file>
|
108
|
+
build.xml
|
109
|
+
</add_file>
|
110
|
+
<add_file>
|
111
|
+
project.xml
|
112
|
+
</add_file>
|
113
|
+
<add_directory>
|
114
|
+
src
|
115
|
+
</add_directory>
|
116
|
+
<add_directory>
|
117
|
+
src/java
|
118
|
+
</add_directory>
|
119
|
+
<add_directory>
|
120
|
+
src/java/com
|
121
|
+
</add_directory>
|
122
|
+
<add_directory>
|
123
|
+
src/java/com/thoughtworks
|
124
|
+
</add_directory>
|
125
|
+
<add_directory>
|
126
|
+
src/java/com/thoughtworks/damagecontrolled
|
127
|
+
</add_directory>
|
128
|
+
<add_file>
|
129
|
+
src/java/com/thoughtworks/damagecontrolled/Thingy.java
|
130
|
+
</add_file>
|
131
|
+
<add_directory>
|
132
|
+
src/test
|
133
|
+
</add_directory>
|
134
|
+
<add_directory>
|
135
|
+
src/test/com
|
136
|
+
</add_directory>
|
137
|
+
<add_directory>
|
138
|
+
src/test/com/thoughtworks
|
139
|
+
</add_directory>
|
140
|
+
<add_directory>
|
141
|
+
src/test/com/thoughtworks/damagecontrolled
|
142
|
+
</add_directory>
|
143
|
+
<add_file>
|
144
|
+
src/test/com/thoughtworks/damagecontrolled/ThingyTestCase.java
|
145
|
+
</add_file>
|
146
|
+
</summary>
|
147
|
+
</patch>
|
148
|
+
</changelog>
|
149
|
+
EOF
|
150
|
+
|
151
|
+
def test_should_parse_CHANGESETS_to_revisions
|
152
|
+
parser = DarcsLogParser.new
|
153
|
+
revisions = parser.parse_revisions(StringIO.new(CHANGESETS))
|
154
|
+
assert_equal(2, revisions.length)
|
155
|
+
revision = revisions[0]
|
156
|
+
|
157
|
+
assert_equal("build.xml", revision[0].path)
|
158
|
+
assert_equal(RevisionFile::MODIFIED, revision[0].status)
|
159
|
+
|
160
|
+
assert_equal("src/java/com/thoughtworks/damagecontrolled/Thingy.java", revision[1].path)
|
161
|
+
assert_equal(RevisionFile::MODIFIED, revision[1].status)
|
162
|
+
end
|
163
|
+
|
164
|
+
def test_should_parse_CHANGESET_to_revisions
|
165
|
+
parser = DarcsLogParser.new
|
166
|
+
revisions = parser.parse_revisions(StringIO.new(CHANGESET))
|
167
|
+
assert_equal(1, revisions.length)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|