rscm 0.4.5 → 0.5.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.
Files changed (55) hide show
  1. data/CHANGES +12 -0
  2. data/README +14 -0
  3. data/Rakefile +4 -24
  4. data/lib/rscm.rb +1 -2
  5. data/lib/rscm/base.rb +289 -281
  6. data/lib/rscm/command_line.rb +135 -112
  7. data/lib/rscm/revision.rb +63 -166
  8. data/lib/rscm/revision_file.rb +8 -2
  9. data/lib/rscm/revision_poller.rb +78 -67
  10. data/lib/rscm/revisions.rb +79 -0
  11. data/lib/rscm/scm/clearcase.rb +11 -9
  12. data/lib/rscm/scm/cvs.rb +374 -352
  13. data/lib/rscm/scm/cvs_log_parser.rb +1 -0
  14. data/lib/rscm/scm/darcs.rb +9 -0
  15. data/lib/rscm/scm/perforce.rb +216 -149
  16. data/lib/rscm/scm/subversion.rb +44 -24
  17. data/lib/rscm/scm/subversion_log_parser.rb +37 -51
  18. data/lib/rscm/time_ext.rb +0 -1
  19. data/lib/rscm/version.rb +2 -2
  20. data/test/rscm/command_line_test.rb +7 -5
  21. data/test/rscm/compatibility/config.yml +4 -4
  22. data/test/rscm/compatibility/cvs_metaproject/diff.txt +52 -0
  23. data/test/rscm/compatibility/cvs_metaproject/file.txt +48 -0
  24. data/test/rscm/compatibility/cvs_metaproject/old.yml +13 -0
  25. data/test/rscm/compatibility/full.rb +2 -223
  26. data/test/rscm/compatibility/p4_gfx/files_0.yml +10 -0
  27. data/test/rscm/compatibility/p4_gfx/old.yml +26 -0
  28. data/test/rscm/compatibility/p4_gfx/revisions.yml +24 -0
  29. data/test/rscm/compatibility/p4_gfx/scm.yml +4 -0
  30. data/test/rscm/compatibility/rscm_engine.rb +197 -0
  31. data/test/rscm/compatibility/subversion_rscm/diff.txt +12 -0
  32. data/test/rscm/compatibility/subversion_rscm/file.txt +567 -0
  33. data/test/rscm/compatibility/subversion_rscm/old.yml +14 -0
  34. data/test/rscm/compatibility/subversion_rscm/revisions.yml +17 -0
  35. data/test/rscm/compatibility/subversion_rscm/scm.yml +1 -0
  36. data/test/rscm/revision_file_test.rb +10 -0
  37. data/test/rscm/revision_poller_test.rb +91 -0
  38. data/test/rscm/revision_test.rb +22 -117
  39. data/test/rscm/revisions_test.rb +80 -0
  40. data/test/rscm/scm/cvs_log_parser_test.rb +569 -567
  41. data/test/rscm/scm/cvs_test.rb +6 -3
  42. data/test/rscm/scm/darcs_test.rb +4 -7
  43. data/test/rscm/scm/perforce_test.rb +6 -2
  44. data/test/rscm/scm/star_team_test.rb +10 -0
  45. data/test/rscm/scm/subversion_log_parser_test.rb +38 -5
  46. data/test/rscm/scm/subversion_test.rb +2 -3
  47. data/test/rscm/test_helper.rb +41 -2
  48. data/testproject/damagecontrolled/build.xml +154 -154
  49. data/testproject/damagecontrolled/src/java/com/thoughtworks/damagecontrolled/Thingy.java +6 -6
  50. metadata +19 -7
  51. data/lib/rscm/historic_file.rb +0 -30
  52. data/test/rscm/compatibility/damage_control_minimal.rb +0 -104
  53. data/test/rscm/revision_fixture.rb +0 -20
  54. data/test/rscm/revisions.yaml +0 -42
  55. data/test/rscm/scm/star_team.rb +0 -36
@@ -1,13 +1,16 @@
1
- require 'rscm/test_helper'
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  module RSCM
4
4
  class CvsTest < Test::Unit::TestCase
5
- include Compatibility::DamageControlMinimal
6
- include Compatibility::Full
5
+ compat(:rscm_engine, :full)
7
6
 
8
7
  def create_scm(repository_root_dir, path)
9
8
  Cvs.local(repository_root_dir, path)
10
9
  end
10
+
11
+ def test_dummy
12
+ # need 1 test in case p4 is not installed (compat will not add tests)
13
+ end
11
14
  end
12
15
 
13
16
  class Cvs
@@ -1,14 +1,11 @@
1
- require 'test/unit'
2
- require 'fileutils'
3
- require 'rscm'
4
- require 'rscm/generic_scm_tests'
1
+ require File.dirname(__FILE__) + '/../test_helper'
5
2
 
6
3
  module RSCM
7
4
  class DarcsTest < Test::Unit::TestCase
8
- include GenericSCMTests
5
+ compat(:rscm_engine)
9
6
 
10
- def create_scm(repository_root_dir, path)
11
- Darcs.new(repository_root_dir)
7
+ def test_dummy
8
+ # need 1 test in case darcs is not installed (compat will not add tests)
12
9
  end
13
10
  end
14
11
  end
@@ -1,7 +1,11 @@
1
- require 'rscm/test_helper'
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  module RSCM
4
4
  class PerforceTest < Test::Unit::TestCase
5
- include Compatibility::DamageControlMinimal
5
+ compat(:rscm_engine)
6
+
7
+ def test_dummy
8
+ # need 1 test in case p4 is not installed (compat will not add tests)
9
+ end
6
10
  end
7
11
  end
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ module RSCM
4
+ class StarTeamTest < Test::Unit::TestCase
5
+
6
+ def test_dummy
7
+ end
8
+
9
+ end
10
+ end
@@ -1,6 +1,5 @@
1
- require 'test/unit'
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
2
  require 'stringio'
3
- require 'rscm'
4
3
 
5
4
  module RSCM
6
5
  class SubversionLogParserTest < Test::Unit::TestCase
@@ -135,7 +134,7 @@ Updated website for 1.1.2 release.
135
134
  ------------------------------------------------------------------------
136
135
  EOF
137
136
 
138
- def test_should_filter_out_unwanted_entries
137
+ def OBSOLETE_SINCE_URL_ARG_WILL_FILTER_test_should_filter_out_unwanted_entries
139
138
  parser = SubversionLogParser.new(StringIO.new(SVN_XSTREAM_LOG), "svn://foo/trunk/xstream/")
140
139
  revisions = parser.parse_revisions
141
140
  assert_equal(593, revisions[0].identifier)
@@ -180,7 +179,8 @@ EOF
180
179
  assert_equal("build.xml", slep.relative_path(url, "trunk/xstream/build.xml"))
181
180
  assert_equal("build.xml", slep.relative_path(url, "scm/trunk/xstream/build.xml"))
182
181
  assert_equal("boo/build.xml", slep.relative_path(url, "trunk/xstream/boo/build.xml"))
183
- assert_equal(nil, slep.relative_path(url, "trunk/xstream-website/boo/build.xml"))
182
+ #obsolete since url arg will filter out
183
+ #assert_equal(nil, slep.relative_path(url, "trunk/xstream-website/boo/build.xml"))
184
184
  end
185
185
 
186
186
  # http://jira.codehaus.org/browse/DC-427
@@ -218,10 +218,43 @@ EOF
218
218
 
219
219
  # We support paths from root only if path is specified
220
220
  def test_no_prefix_log
221
- parser = SubversionLogParser.new(StringIO.new(NO_PREFIX_LOG), "svn://mooky/funny/", nil, "")
221
+ parser = SubversionLogParser.new(StringIO.new(NO_PREFIX_LOG), "svn://mooky/funny", nil, nil, "")
222
222
  revisions = parser.parse_revisions
223
223
  assert_equal("Rakefile", revisions[0][0].path)
224
224
  assert_equal("lib/foo.rb", revisions[0][1].path)
225
225
  end
226
+
227
+ NO_AUTHOR_LOG = <<-EOF
228
+ ------------------------------------------------------------------------
229
+ r407118 | (no author) | (no date) | 1 line
230
+
231
+
232
+ ------------------------------------------------------------------------
233
+ r407119 | sebor | 2006-05-16 20:27:28 -0500 (Tue, 16 May 2006) | 5 lines
234
+ Changed paths:
235
+ M /incubator/stdcxx/trunk/tests/containers/23.vector.modifiers.cpp
236
+
237
+ 2006-05-16 Martin Sebor <sebor@roguewave.com>
238
+
239
+ * vector_modifiers.cpp (test_insert): Corrected formatting.
240
+ (test_insert_range): Added test cases exercising STDCXX-179.
241
+
242
+ ------------------------------------------------------------------------
243
+ EOF
244
+
245
+ # sometimes svn logs have no authors or dates. this is probably because of
246
+ # migrating from a different scm such as cvs
247
+ def test_no_author_log
248
+ url = "http://svn.apache.org/repos/asf/incubator/stdcxx/trunk"
249
+ path = "incubator/stdcxx/trunk"
250
+ parser = SubversionLogParser.new(StringIO.new(NO_AUTHOR_LOG), url, nil, nil, path)
251
+ revisions = parser.parse_revisions
252
+ revisions.sort!
253
+ assert_equal(1, revisions.length)
254
+
255
+ assert_equal(1, revisions[0].length)
256
+ assert_equal("tests/containers/23.vector.modifiers.cpp", revisions[0][0].path)
257
+ end
258
+
226
259
  end
227
260
  end
@@ -1,9 +1,8 @@
1
- require 'rscm/test_helper'
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  module RSCM
4
4
  class SubversionTest < Test::Unit::TestCase
5
- include Compatibility::DamageControlMinimal
6
- include Compatibility::Full
5
+ compat(:rscm_engine, :full)
7
6
 
8
7
  def create_scm(repository_root_dir, path)
9
8
  Subversion.new(PathConverter.filepath_to_nativeurl("#{repository_root_dir}/#{path}"), path)
@@ -1,9 +1,48 @@
1
1
  require 'test/unit'
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../test')
4
+ $LOAD_PATH.uniq!
2
5
  require 'rscm'
3
6
  require 'rscm/tempdir'
4
7
  require 'rscm/compatibility/full'
5
- require 'rscm/compatibility/damage_control_minimal'
8
+ require 'rscm/compatibility/rscm_engine'
6
9
 
7
10
  module RSCM
8
- DEFAULT_OPTIONS = {:stdout => 'target/stdout.log', :stderr => 'target/stderr.log'}.freeze
11
+ class Base
12
+ DEFAULT_OPTIONS = {:stdout => 'target/stdout.log', :stderr => 'target/stderr.log'}.freeze unless defined? DEFAULT_OPTIONS
13
+
14
+ def default_options
15
+ DEFAULT_OPTIONS
16
+ end
17
+ end
18
+ end
19
+
20
+ module Test
21
+ module Unit
22
+ class TestCase
23
+ SUITES = {
24
+ :rscm_engine => RSCM::Compatibility::RscmEngine,
25
+ :full => RSCM::Compatibility::Full
26
+ } unless defined? SUITES
27
+
28
+ # Call from scm adapter tests to have compatibility test suites included.
29
+ def self.compat(*suite_keys)
30
+ scm_class_name = self.name.match(/(.*)Test/)[1]
31
+ scm_class = eval(scm_class_name)
32
+ scm = scm_class.new
33
+ if(scm.installed?)
34
+ suite_keys.each do |key|
35
+ suite = SUITES[key]
36
+ raise "The compat method arguments must be among #{SUITES.keys.join(', ')}" if suite.nil?
37
+
38
+ STDERR.puts "INFO: Running #{suite} suite for #{scm_class_name}."
39
+ include suite
40
+ end
41
+ else
42
+ STDERR.puts "WARNING: Skipping #{suite} suite for #{scm_class_name}. It's not available."
43
+ end
44
+ end
45
+
46
+ end
47
+ end
9
48
  end
@@ -1,155 +1,155 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <!--build.xml generated by maven from project.xml version 1.0
4
- on date October 26 2003, time 1700-->
5
-
6
- <project default="jar" name="damagecontrolled" basedir=".">
7
- <property name="defaulttargetdir" value="target">
8
- </property>
9
- <property name="libdir" value="target/lib">
10
- </property>
11
- <property name="classesdir" value="target/classes">
12
- </property>
13
- <property name="testclassesdir" value="target/test-classes">
14
- </property>
15
- <property name="testreportdir" value="target/test-reports">
16
- </property>
17
- <property name="distdir" value="dist">
18
- </property>
19
- <property name="javadocdir" value="dist/docs/api">
20
- </property>
21
- <property name="final.name" value="damagecontrolled-1.0">
22
- </property>
23
- <target name="init" description="o Initializes some properties">
24
- <mkdir dir="${libdir}">
25
- </mkdir>
26
- <condition property="noget">
27
- <equals arg2="only" arg1="${build.sysclasspath}">
28
- </equals>
29
- </condition>
30
- </target>
31
- <target name="compile" description="o Compile the code" depends="get-deps">
32
- <mkdir dir="${classesdir}">
33
- </mkdir>
34
- <javac destdir="${classesdir}" deprecation="true" debug="true" optimize="false" excludes="**/package.html">
35
- <src>
36
- <pathelement location="${basedir}/src/java">
37
- </pathelement>
38
- </src>
39
- <classpath>
40
- <fileset dir="${libdir}">
41
- <include name="*.jar">
42
- </include>
43
- </fileset>
44
- </classpath>
45
- </javac>
46
- </target>
47
- <target name="jar" description="o Create the jar" depends="compile,test">
48
- <jar jarfile="target/${final.name}.jar" excludes="**/package.html" basedir="${classesdir}">
49
- </jar>
50
- </target>
51
- <target name="clean" description="o Clean up the generated directories">
52
- <delete dir="${defaulttargetdir}">
53
- </delete>
54
- <delete dir="${distdir}">
55
- </delete>
56
- </target>
57
- <target name="dist" description="o Create a distribution" depends="jar, javadoc">
58
- <mkdir dir="dist">
59
- </mkdir>
60
- <copy todir="dist">
61
- <fileset dir="${defaulttargetdir}" includes="*.jar">
62
- </fileset>
63
- <fileset dir="${basedir}" includes="LICENSE*, README*">
64
- </fileset>
65
- </copy>
66
- </target>
67
- <target name="test" description="o Run the test cases" if="test.failure" depends="internal-test">
68
- <fail message="There were test failures.">
69
- </fail>
70
- </target>
71
- <target name="internal-test" depends="compile-tests">
72
- <mkdir dir="${testreportdir}">
73
- </mkdir>
74
- <junit dir="./" failureproperty="test.failure" printSummary="yes" fork="true" haltonerror="true">
75
- <sysproperty key="basedir" value=".">
76
- </sysproperty>
77
- <formatter type="xml">
78
- </formatter>
79
- <formatter usefile="false" type="plain">
80
- </formatter>
81
- <classpath>
82
- <fileset dir="${libdir}">
83
- <include name="*.jar">
84
- </include>
85
- </fileset>
86
- <pathelement path="${testclassesdir}">
87
- </pathelement>
88
- <pathelement path="${classesdir}">
89
- </pathelement>
90
- </classpath>
91
- <batchtest todir="${testreportdir}">
92
- <fileset dir="C:\scm\damagecontrol\testdata\damagecontrolled\src\test">
93
- <include name="**/*TestCase.java">
94
- </include>
95
- </fileset>
96
- </batchtest>
97
- </junit>
98
- </target>
99
- <target name="compile-tests" depends="compile">
100
- <mkdir dir="${testclassesdir}">
101
- </mkdir>
102
- <javac destdir="${testclassesdir}" deprecation="true" debug="true" optimize="false" excludes="**/package.html">
103
- <src>
104
- <pathelement location="C:\scm\damagecontrol\testdata\damagecontrolled\src\test">
105
- </pathelement>
106
- </src>
107
- <classpath>
108
- <fileset dir="${libdir}">
109
- <include name="*.jar">
110
- </include>
111
- </fileset>
112
- <pathelement path="${classesdir}">
113
- </pathelement>
114
- </classpath>
115
- </javac>
116
- </target>
117
- <target name="javadoc" description="o Generate javadoc" depends="jar">
118
- <mkdir dir="${javadocdir}">
119
- </mkdir>
120
- <tstamp>
121
- <format pattern="2003-yyyy" property="year">
122
- </format>
123
- </tstamp>
124
- <property name="copyright" value="Copyright &amp;copy; . All Rights Reserved.">
125
- </property>
126
- <property name="title" value="DamageControlled 1.0 API">
127
- </property>
128
- <javadoc use="true" private="true" destdir="${javadocdir}" author="true" version="true" sourcepath="C:\scm\damagecontrol\testdata\damagecontrolled\src\java" packagenames="com.thoughtworks.*">
129
- <classpath>
130
- <fileset dir="${libdir}">
131
- <include name="*.jar">
132
- </include>
133
- </fileset>
134
- <pathelement location="target/${final.name}.jar">
135
- </pathelement>
136
- </classpath>
137
- </javadoc>
138
- </target>
139
- <target name="get-deps" unless="noget" depends="init">
140
- <!--
141
- <get dest="${libdir}/junit-3.8.1.jar" usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio.org/maven/junit/jars/junit-3.8.1.jar">
142
- </get>
143
- <get dest="${libdir}/ant-1.5.jar" usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant-1.5.jar">
144
- </get>
145
- <get dest="${libdir}/ant-optional-1.5.jar" usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant-optional-1.5.jar">
146
- </get>
147
- -->
148
- </target>
149
- <target name="install-maven">
150
- <get dest="${user.home}/maven-install-latest.jar" usetimestamp="true" src="${repo}/maven/maven-install-latest.jar">
151
- </get>
152
- <unjar dest="${maven.home}" src="${user.home}/maven-install-latest.jar">
153
- </unjar>
154
- </target>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <!--build.xml generated by maven from project.xml version 1.0
4
+ on date October 26 2003, time 1700-->
5
+
6
+ <project default="jar" name="damagecontrolled" basedir=".">
7
+ <property name="defaulttargetdir" value="target">
8
+ </property>
9
+ <property name="libdir" value="target/lib">
10
+ </property>
11
+ <property name="classesdir" value="target/classes">
12
+ </property>
13
+ <property name="testclassesdir" value="target/test-classes">
14
+ </property>
15
+ <property name="testreportdir" value="target/test-reports">
16
+ </property>
17
+ <property name="distdir" value="dist">
18
+ </property>
19
+ <property name="javadocdir" value="dist/docs/api">
20
+ </property>
21
+ <property name="final.name" value="damagecontrolled-1.0">
22
+ </property>
23
+ <target name="init" description="o Initializes some properties">
24
+ <mkdir dir="${libdir}">
25
+ </mkdir>
26
+ <condition property="noget">
27
+ <equals arg2="only" arg1="${build.sysclasspath}">
28
+ </equals>
29
+ </condition>
30
+ </target>
31
+ <target name="compile" description="o Compile the code" depends="get-deps">
32
+ <mkdir dir="${classesdir}">
33
+ </mkdir>
34
+ <javac destdir="${classesdir}" deprecation="true" debug="true" optimize="false" excludes="**/package.html">
35
+ <src>
36
+ <pathelement location="${basedir}/src/java">
37
+ </pathelement>
38
+ </src>
39
+ <classpath>
40
+ <fileset dir="${libdir}">
41
+ <include name="*.jar">
42
+ </include>
43
+ </fileset>
44
+ </classpath>
45
+ </javac>
46
+ </target>
47
+ <target name="jar" description="o Create the jar" depends="compile,test">
48
+ <jar jarfile="target/${final.name}.jar" excludes="**/package.html" basedir="${classesdir}">
49
+ </jar>
50
+ </target>
51
+ <target name="clean" description="o Clean up the generated directories">
52
+ <delete dir="${defaulttargetdir}">
53
+ </delete>
54
+ <delete dir="${distdir}">
55
+ </delete>
56
+ </target>
57
+ <target name="dist" description="o Create a distribution" depends="jar, javadoc">
58
+ <mkdir dir="dist">
59
+ </mkdir>
60
+ <copy todir="dist">
61
+ <fileset dir="${defaulttargetdir}" includes="*.jar">
62
+ </fileset>
63
+ <fileset dir="${basedir}" includes="LICENSE*, README*">
64
+ </fileset>
65
+ </copy>
66
+ </target>
67
+ <target name="test" description="o Run the test cases" if="test.failure" depends="internal-test">
68
+ <fail message="There were test failures.">
69
+ </fail>
70
+ </target>
71
+ <target name="internal-test" depends="compile-tests">
72
+ <mkdir dir="${testreportdir}">
73
+ </mkdir>
74
+ <junit dir="./" failureproperty="test.failure" printSummary="yes" fork="true" haltonerror="true">
75
+ <sysproperty key="basedir" value=".">
76
+ </sysproperty>
77
+ <formatter type="xml">
78
+ </formatter>
79
+ <formatter usefile="false" type="plain">
80
+ </formatter>
81
+ <classpath>
82
+ <fileset dir="${libdir}">
83
+ <include name="*.jar">
84
+ </include>
85
+ </fileset>
86
+ <pathelement path="${testclassesdir}">
87
+ </pathelement>
88
+ <pathelement path="${classesdir}">
89
+ </pathelement>
90
+ </classpath>
91
+ <batchtest todir="${testreportdir}">
92
+ <fileset dir="C:\scm\damagecontrol\testdata\damagecontrolled\src\test">
93
+ <include name="**/*TestCase.java">
94
+ </include>
95
+ </fileset>
96
+ </batchtest>
97
+ </junit>
98
+ </target>
99
+ <target name="compile-tests" depends="compile">
100
+ <mkdir dir="${testclassesdir}">
101
+ </mkdir>
102
+ <javac destdir="${testclassesdir}" deprecation="true" debug="true" optimize="false" excludes="**/package.html">
103
+ <src>
104
+ <pathelement location="C:\scm\damagecontrol\testdata\damagecontrolled\src\test">
105
+ </pathelement>
106
+ </src>
107
+ <classpath>
108
+ <fileset dir="${libdir}">
109
+ <include name="*.jar">
110
+ </include>
111
+ </fileset>
112
+ <pathelement path="${classesdir}">
113
+ </pathelement>
114
+ </classpath>
115
+ </javac>
116
+ </target>
117
+ <target name="javadoc" description="o Generate javadoc" depends="jar">
118
+ <mkdir dir="${javadocdir}">
119
+ </mkdir>
120
+ <tstamp>
121
+ <format pattern="2003-yyyy" property="year">
122
+ </format>
123
+ </tstamp>
124
+ <property name="copyright" value="Copyright &amp;copy; . All Rights Reserved.">
125
+ </property>
126
+ <property name="title" value="DamageControlled 1.0 API">
127
+ </property>
128
+ <javadoc use="true" private="true" destdir="${javadocdir}" author="true" version="true" sourcepath="C:\scm\damagecontrol\testdata\damagecontrolled\src\java" packagenames="com.thoughtworks.*">
129
+ <classpath>
130
+ <fileset dir="${libdir}">
131
+ <include name="*.jar">
132
+ </include>
133
+ </fileset>
134
+ <pathelement location="target/${final.name}.jar">
135
+ </pathelement>
136
+ </classpath>
137
+ </javadoc>
138
+ </target>
139
+ <target name="get-deps" unless="noget" depends="init">
140
+ <!--
141
+ <get dest="${libdir}/junit-3.8.1.jar" usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio.org/maven/junit/jars/junit-3.8.1.jar">
142
+ </get>
143
+ <get dest="${libdir}/ant-1.5.jar" usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant-1.5.jar">
144
+ </get>
145
+ <get dest="${libdir}/ant-optional-1.5.jar" usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant-optional-1.5.jar">
146
+ </get>
147
+ -->
148
+ </target>
149
+ <target name="install-maven">
150
+ <get dest="${user.home}/maven-install-latest.jar" usetimestamp="true" src="${repo}/maven/maven-install-latest.jar">
151
+ </get>
152
+ <unjar dest="${maven.home}" src="${user.home}/maven-install-latest.jar">
153
+ </unjar>
154
+ </target>
155
155
  </project>