Changeset 115
- Timestamp:
- 09/12/06 09:18:30 (2 years ago)
- Files:
-
- trunk/CHANGELOG (modified) (1 diff)
- trunk/bin/pear-phing (modified) (2 diffs)
- trunk/bin/phing (modified) (1 diff)
- trunk/classes/phing/Phing.php (modified) (1 diff)
- trunk/classes/phing/tasks/ext/CreoleSQLExecTask.php (modified) (1 diff)
- trunk/classes/phing/tasks/ext/phpdoc/PHPDocumentorTask.php (modified) (1 diff)
- trunk/classes/phing/tasks/ext/phpunit2/PHPUnit2ReportTask.php (modified) (4 diffs)
- trunk/classes/phing/tasks/ext/phpunit2/PHPUnit2ResultFormatter.php (modified) (1 diff)
- trunk/classes/phing/tasks/ext/phpunit2/PHPUnit2Util.php (modified) (1 diff)
- trunk/classes/phing/tasks/ext/svn/SvnBaseTask.php (modified) (4 diffs)
- trunk/classes/phing/util/FileUtils.php (modified) (1 diff)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixA-FactSheet.html (modified) (8 diffs)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixB-CoreTasks.html (modified) (2 diffs)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/CHANGELOG
r114 r115 34 34 35 35 * Added PhpLintTask (Knut Urdalen) 36 37 * Added XmlLintTask (Knut Urdalen) 38 39 * Added ZendCodeAnalyzerTask (Knut Urdalen) 36 40 37 41 * Removed CoverageFormatter class (MR) trunk/bin/pear-phing
r1 r115 7 7 8 8 # Change this to reflect your environment if the default value doesn't work 9 export PHP_COMMAND="@PHP-BIN@" 9 PHP_COMMAND="@PHP-BIN@" 10 export PHP_COMMAND 10 11 11 12 # ------------------------------------------------------------------------- … … 15 16 if (test -z "$PHP_COMMAND") ; then 16 17 echo "WARNING: PHP_COMMAND environment not set. (Assuming php on PATH)" 17 export PHP_COMMAND=php 18 PHP_COMMAND=php 19 export PHP_COMMAND 18 20 fi 19 21 trunk/bin/phing
r1 r115 64 64 if (test -z "$PHP_COMMAND") ; then 65 65 # echo "WARNING: PHP_COMMAND environment not set. (Assuming php on PATH)" 66 export PHP_COMMAND=php 66 PHP_COMMAND=php 67 export PHP_COMMAND 67 68 fi 68 69 trunk/classes/phing/Phing.php
r11 r115 811 811 } 812 812 813 $path = strtr($dotPath, '.', DIRECTORY_SEPARATOR) . ".php"; 813 $dotClassname = basename($dotPath); 814 $dotClassnamePos = strlen($dotPath) - strlen($dotClassname); 815 $classFile = strtr($dotClassname, '.', DIRECTORY_SEPARATOR) . ".php"; 816 $path = substr_replace($dotPath, $classFile, $dotClassnamePos); 814 817 815 818 Phing::__import($path, $classpath); trunk/classes/phing/tasks/ext/CreoleSQLExecTask.php
r43 r115 391 391 && $line == $this->delimiter) { 392 392 $this->log("SQL: " . $sql, PROJECT_MSG_VERBOSE); 393 $this->execSQL(StringHelper::substring($sql, 0, strlen($sql) - strlen($this->delimiter) ), $out);393 $this->execSQL(StringHelper::substring($sql, 0, strlen($sql) - strlen($this->delimiter) - 1), $out); 394 394 $sql = ""; 395 395 } trunk/classes/phing/tasks/ext/phpdoc/PHPDocumentorTask.php
r81 r115 1 1 <?php 2 2 3 /** 4 * $Id$ 5 * 6 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 7 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 8 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 9 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 10 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 12 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 13 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 14 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 15 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 16 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 17 * 18 * This software consists of voluntary contributions made by many individuals 19 * and is licensed under the LGPL. For more information please see 20 * <http://phing.info>. 21 */ 22 23 require_once 'phing/Task.php'; 24 25 /** 26 * Task to run phpDocumentor. 27 * 28 * @author Michiel Rook <michiel.rook@gmail.com> 29 * @version $Id$ 30 * @package phing.tasks.ext.phpdoc 31 */ 32 class PHPDocumentorTask extends Task 33 { 3 34 /** 4 * $Id$ 5 * 6 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 7 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 8 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 9 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 10 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 12 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 13 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 14 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 15 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 16 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 17 * 18 * This software consists of voluntary contributions made by many individuals 19 * and is licensed under the LGPL. For more information please see 20 * <http://phing.info>. 35 * The path to the executable for phpDocumentor 21 36 */ 22 23 require_once 'phing/Task.php'; 37 private $programPath = 'phpdoc'; 38 39 private $title = "Default Title"; 40 41 private $destdir = "."; 42 43 private $sourcepath = NULL; 44 45 private $output = ""; 46 47 private $linksource = false; 48 49 private $parseprivate = false; 24 50 25 51 /** 26 * Task to run phpDocumentor. 27 * 28 * @author Michiel Rook <michiel.rook@gmail.com> 29 * @version $Id$ 30 * @package phing.tasks.ext.phpdoc 31 */ 32 class PHPDocumentorTask extends Task 52 * Sets the path to the phpDocumentor executable 53 */ 54 function setProgramPath($programPath) 33 55 { 34 /** 35 * The name of the executable for phpDocumentor 36 */ 37 const PHPDOC = 'phpdoc'; 38 39 private $title = "Default Title"; 40 41 private $destdir = "."; 42 43 private $sourcepath = NULL; 44 45 private $output = ""; 46 47 private $linksource = false; 48 49 private $parseprivate = false; 56 $this->programPath = $programPath; 57 } 50 58 51 /** 52 * Set the title for the generated documentation 53 */ 54 function setTitle($title) 59 /** 60 * Returns the path to the phpDocumentor executable 61 */ 62 function getProgramPath() 63 { 64 return $this->programPath; 65 } 66 67 /** 68 * Set the title for the generated documentation 69 */ 70 function setTitle($title) 71 { 72 $this->title = $title; 73 } 74 75 /** 76 * Set the destination directory for the generated documentation 77 */ 78 function setDestdir($destdir) 79 { 80 $this->destdir = $destdir; 81 } 82 83 /** 84 * Set the source path 85 */ 86 function setSourcepath(Path $sourcepath) 87 { 88 if ($this->sourcepath === NULL) 55 89 { 56 $this->title = $title; 90 $this->sourcepath = $sourcepath; 91 } 92 else 93 { 94 $this->sourcepath->append($sourcepath); 95 } 96 } 97 98 /** 99 * Set the output type 100 */ 101 function setOutput($output) 102 { 103 $this->output = $output; 104 } 105 106 /** 107 * Should sources be linked in the generated documentation 108 */ 109 function setLinksource($linksource) 110 { 111 $this->linksource = $linksource; 112 } 113 114 /** 115 * Should private members/classes be documented 116 */ 117 function setParseprivate($parseprivate) 118 { 119 $this->parseprivate = $parseprivate; 120 } 121 122 /** 123 * Main entrypoint of the task 124 */ 125 function main() 126 { 127 $arguments = $this->constructArguments(); 128 129 $this->log("Running phpDocumentor..."); 130 131 exec($this->programPath . " " . $arguments, $output, $return); 132 133 if ($return != 0) 134 { 135 throw new BuildException("Could not execute phpDocumentor: " . implode(' ', $output)); 57 136 } 58 137 59 /** 60 * Set the destination directory for the generated documentation 61 */ 62 function setDestdir($destdir) 138 foreach($output as $line) 63 139 { 64 $this->destdir = $destdir; 65 } 66 67 /** 68 * Set the source path 69 */ 70 function setSourcepath(Path $sourcepath) 71 { 72 if ($this->sourcepath === NULL) 140 if(strpos($line, 'ERROR') !== false) 73 141 { 74 $this->sourcepath = $sourcepath; 75 } 76 else 77 { 78 $this->sourcepath->append($sourcepath); 79 } 80 } 81 82 /** 83 * Set the output type 84 */ 85 function setOutput($output) 86 { 87 $this->output = $output; 88 } 89 90 /** 91 * Should sources be linked in the generated documentation 92 */ 93 function setLinksource($linksource) 94 { 95 $this->linksource = $linksource; 96 } 97 98 /** 99 * Should private members/classes be documented 100 */ 101 function setParseprivate($parseprivate) 102 { 103 $this->parseprivate = $parseprivate; 104 } 105 106 /** 107 * Main entrypoint of the task 108 */ 109 function main() 110 { 111 $arguments = $this->constructArguments(); 112 113 exec(self::PHPDOC . " " . $arguments, $output, $retval); 114 } 115 116 /** 117 * Constructs an argument string for phpDocumentor 118 */ 119 private function constructArguments() 120 { 121 $arguments = "-q "; 122 123 if ($this->title) 124 { 125 $arguments.= "-ti '" . $this->title . "' "; 142 $this->log($line, PROJECT_MSG_ERR); 143 continue; 126 144 } 127 145 128 if ($this->destdir) 129 { 130 $arguments.= "-t " . $this->destdir . " "; 131 } 132 133 if ($this->sourcepath !== NULL) 134 { 135 $arguments.= "-d " . $this->sourcepath->__toString() . " "; 136 } 137 138 if ($this->output) 139 { 140 $arguments.= "-o " . $this->output . " "; 141 } 142 143 if ($this->linksource) 144 { 145 $arguments.= "-s "; 146 } 147 148 if ($this->parseprivate) 149 { 150 $arguments.= "-pp "; 151 } 152 153 return $arguments; 146 $this->log($line, PROJECT_MSG_VERBOSE); 154 147 } 155 }; 148 } 149 150 /** 151 * Constructs an argument string for phpDocumentor 152 */ 153 private function constructArguments() 154 { 155 $arguments = "-q on "; 156 157 if ($this->title) 158 { 159 $arguments.= "-ti \"" . $this->title . "\" "; 160 } 161 162 if ($this->destdir) 163 { 164 $arguments.= "-t \"" . $this->destdir . "\" "; 165 } 166 167 if ($this->sourcepath !== NULL) 168 { 169 $arguments.= "-d \"" . $this->sourcepath->__toString() . "\" "; 170 } 171 172 if ($this->output) 173 { 174 $arguments.= "-o " . $this->output . " "; 175 } 176 177 if ($this->linksource) 178 { 179 $arguments.= "-s on "; 180 } 181 182 if ($this->parseprivate) 183 { 184 $arguments.= "-pp on "; 185 } 186 187 return $arguments; 188 } 189 }; 156 190 157 191 ?> trunk/classes/phing/tasks/ext/phpunit2/PHPUnit2ReportTask.php
r81 r115 78 78 $this->toDir = $toDir; 79 79 } 80 80 81 /** 82 * Returns the path to the XSL stylesheet 83 */ 81 84 private function getStyleSheet() 82 85 { … … 111 114 return $file; 112 115 } 113 114 function transform($document) 116 117 /** 118 * Transforms the DOM document 119 */ 120 private function transform(DOMDocument $document) 115 121 { 116 122 $dir = new PhingFile($this->toDir); … … 146 152 } 147 153 } 154 155 /** 156 * Fixes 'testsuite' elements with no package attribute, adds 157 * package="default" to those elements. 158 */ 159 private function fixPackages(DOMDocument $document) 160 { 161 $testsuites = $document->getElementsByTagName('testsuite'); 162 163 foreach ($testsuites as $testsuite) 164 { 165 if (!$testsuite->hasAttribute('package')) 166 { 167 $testsuite->setAttribute('package', 'default'); 168 } 169 } 170 } 148 171 149 172 /** … … 152 175 * @throws BuildException 153 176 */ 154 function main()177 public function main() 155 178 { 156 179 $testSuitesDoc = new DOMDocument(); 157 180 $testSuitesDoc->load($this->inFile); 181 182 $this->fixPackages($testSuitesDoc); 158 183 159 184 $this->transform($testSuitesDoc); trunk/classes/phing/tasks/ext/phpunit2/PHPUnit2ResultFormatter.php
r81 r115 125 125 } 126 126 127 function addSkippedTest(PHPUnit2_Framework_Test $test, Exception $e) 128 { 129 } 130 127 131 function getRunCount() 128 132 { trunk/classes/phing/tasks/ext/phpunit2/PHPUnit2Util.php
r81 r115 108 108 } 109 109 } 110 111 return self::$definedClasses[$filename]; 110 111 if (isset(self::$definedClasses[$filename])) 112 { 113 return self::$definedClasses[$filename]; 114 } 115 else 116 { 117 return array(); 118 } 112 119 } 113 120 } trunk/classes/phing/tasks/ext/svn/SvnBaseTask.php
r43 r115 28 28 * 29 29 * @author Francois Harvey at SecuriWeb (http://www.securiweb.net) 30 * @version $ Revision: 1.1$30 * @version $Id$ 31 31 * @package phing.tasks.ext 32 32 */ … … 109 109 * Creates a VersionControl_SVN class based on $mode 110 110 * 111 * @param modeThe SVN mode to use (info, export, checkout, ...)111 * @param string The SVN mode to use (info, export, checkout, ...) 112 112 * @throws BuildException 113 113 */ … … 151 151 * Executes the constructed VersionControl_SVN instance 152 152 * 153 * @param args Additional arguments to pass to SVN. 154 * @returns string Output generated by SVN. 153 * @param array Additional arguments to pass to SVN. 154 * @param array Switches to pass to SVN. 155 * @return string Output generated by SVN. 155 156 */ 156 protected function run($args = NULL)157 protected function run($args = array(), $switches = array()) 157 158 { 158 159 $svnstack = PEAR_ErrorStack::singleton('VersionControl_SVN'); … … 160 161 $tempArgs = $this->svnArgs; 161 162 162 if (is_array($args)) 163 { 164 $tempArgs = array_merge($tempArgs, $args); 165 } 163 $tempArgs = array_merge($tempArgs, $args); 166 164 167 if ($output = $this->svn->run($tempArgs ))165 if ($output = $this->svn->run($tempArgs, $switches)) 168 166 { 169 167 return $output; trunk/classes/phing/util/FileUtils.php
r1 r115 47 47 * @return Reader Assembled Reader (w/ filter chains). 48 48 */ 49 function getChainedReader(Reader $in, &$filterChains, Project $project) {49 public static function getChainedReader(Reader $in, &$filterChains, Project $project) { 50 50 if (!empty($filterChains)) { 51 51 $crh = new ChainReaderHelper(); trunk/docs/phing_guide/book/chapters/appendixes/AppendixA-FactSheet.html
r1 r115 8 8 <html xmlns="http://www.w3.org/1999/xhtml"> 9 9 <head> 10 <title> Phing Guide </title> 10 <title> Phing Guide </title> 11 11 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 12 12 <link rel="Stylesheet" rev="Stylesheet" href="../../css/Documentation.css" type="text/css" media="All" charset="iso-8859-1" /> … … 15 15 <h1>Appendix A: Fact Sheet</h1> 16 16 17 <h2><a name="BuiltInProperties"></a>Built-In Properties</h2> 17 <h2><a name="BuiltInProperties"></a>Built-In Properties</h2> 18 18 19 19 <table> … … 31 31 </tr> 32 32 <tr> 33 <td>env.*</td> 34 <td>Environment variables, extracted from <em>$_SERVER</em>.</td> 35 </tr> 36 <tr> 33 37 <td>host.arch</td> 34 <td>Name of the host machine. <em>Not available on Windows machines.</em></td> 38 <td>System architecture, i.e. <em>i586</em>. 39 <em>Not available on Windows machines.</em></td> 35 40 </tr> 36 41 <tr> … … 44 49 </tr> 45 50 <tr> 46 <td>host. machine</td>47 <td> System architecture, i.e. <em>i586</em>.51 <td>host.name</td> 52 <td>Operating System hostname as returned by <em>posix_uname()</em>. 48 53 <em>Not available on Windows machines.</em></td> 49 54 </tr> 50 55 <tr> 51 <td>host.name</td> 52 <td>Operating System name as returned by <em>posix_uname()</em>. 56 <td>host.os</td> 57 <td>Operating System description as set in <em>PHP_OS</em> variable.</td> 58 </tr> 59 <tr> 60 <td>host.os.release</td> 61 <td>Operating version release, i.e. <em> 2.2.10</em>. 53 62 <em>Not available on Windows machines.</em></td> 54 63 </tr> 55 64 <tr> 56 <td>host.os. release</td>57 <td>Operating version release, i.e. <em> 2.2.10</em>.65 <td>host.os.version</td> 66 <td>Operating system version, i.e. <em>#4 Tue Jul 20 17:01:36 MEST 1999</em>. 58 67 <em>Not available on Windows machines.</em></td> 59 68 </tr> 60 69 <tr> 61 <td>host.os.version</td>62 <td>Operating system version, i.e. <em>#4 Tue Jul 20 17:01:36 MEST 1999</em>.63 <em>Not available on Windows machines.</em></td>64 </tr>65 <tr>66 70 <td>line.separator</td> 67 <td>Character(s) that signal the end of a line, "\n" for Linux, 71 <td>Character(s) that signal the end of a line, "\n" for Linux, 68 72 "\r\n" for Windows system, "\r" for Macintosh.</td> 69 73 </tr> 74 <tr> 75 <td>os.name</td> 76 <td>Operating System description as set in <em>PHP_OS</em> variable.</td> 77 </tr> 78 79 <tr> 80 <td>phing.file</td> 81 <td>Full path to current buildfile.</td> 82 </tr> 83 <tr> 84 <td>phing.home</td> 85 <td>Phing installation directory, not set in <em>PEAR</em> installations.</td> 86 </tr> 87 <tr> 88 <td>phing.version</td> 89 <td>Current Phing version. This property equals the value of the PHP 90 constant <em>PHP_OS</em> (see <a 91 href="http://www.php.net/manual/en/reserved.constants.core.php">PHP Manual</a>). 92 Possible values are <em>Linux</em>, <em>Win32</em> and <em>WINNT</em>, for 93 example.</td> 94 </tr> 95 <tr> 96 <td>phing.project.name</td> 97 <td>Name of the currently processed project.</td> 98 </tr> 70 99 71 100 <tr> 72 101 <td>php.classpath</td> 73 <td>The value of the environment variable <em>PHP_CLASSPATH</em> </td>102 <td>The value of the environment variable <em>PHP_CLASSPATH</em>.</td> 74 103 </tr> 75 104 <tr> … … 81 110 82 111 <tr> 83 <td>phing.buildfile</td>84 <td>Full path to current buildfile</td>85 </tr>86 <tr>87 <td>phing.id</td>88 <td>ID of hte current phing instance</td>89 </tr>90 <tr>91 <td>phing.version</td>92 <td>Current Phing version. This property equals the value of the PHP93 constant <em>PHP_OS</em> (see <a94 href="http://www.php.net/manual/en/reserved.constants.core.php">PHP Manual</a>.95 Possible values are <em>Linux</em>, <em>Win32</em> and <em>WINNT</em>, for96 example.</td>97 </tr>98 99 <tr>100 <td>project.name</td>101 <td>Name of the currently processed project.</td>102 </tr>103 <tr>104 112 <td>project.basedir</td> 105 <td>The current project basedir</td> 106 </tr> 107 <tr> 108 <td>project.description</td> 109 <td>The description of the currently processed project.</td> 113 <td>The current project basedir.</td> 110 114 </tr> 111 115 … … 169 173 170 174 171 <h2><a name="DistributionFileLayout"></a>Distribution File Layout</h2> 175 <h2><a name="DistributionFileLayout"></a>Distribution File Layout</h2> 172 176 173 177 <pre title="DistributionFileLayout">$PHING_HOME … … 192 196 </pre> 193 197 194 <h2><a name="ProgramExitCodes"></a>Program Exit Codes</h2> 195 196 <p>Phing is script-safe - means that you can execute Phing and 197 Configure within a automated script context. To check back the 198 success of a Phing call it returns an exit code that can be 199 captured by your calling script. The following list gives you 198 <h2><a name="ProgramExitCodes"></a>Program Exit Codes</h2> 199 200 <p>Phing is script-safe - means that you can execute Phing and 201 Configure within a automated script context. To check back the 202 success of a Phing call it returns an exit code that can be 203 captured by your calling script. The following list gives you 200 204 details on the used exit codes and their meaning.</p> 201 205 … … 386 390 writing it). Whether that is true depends on what the Library does 387 391 and what the program that uses the Library does. 388 392 389 393 1. You may copy and distribute verbatim copies of the Library's 390 394 complete source code as you receive it, in any medium, provided that trunk/docs/phing_guide/book/chapters/appendixes/AppendixB-CoreTasks.html
r97 r115 1124 1124 <h3>Example</h3> 1125 1125 <pre><property name="strings.test" value="Harr harr, more power!" /> 1126 <echo message=" {$strings.text}" />1126 <echo message="${strings.text}" /> 1127 1127 1128 1128 <property name="foo.bar" value="Yet another property..." /> 1129 <echo message=" {$foo.bar}" />1129 <echo message="${foo.bar}" /> 1130 1130 1131 1131 <property file="build.properties" /> … … 1230 1230 <pre><property name="relative_path" value="./dirname"/> 1231 1231 1232 <resolve propertyName="absolute_path" file="${relative_path}"/>1232 <resolvepath propertyName="absolute_path" file="${relative_path}"/> 1233 1233 1234 1234 <echo>Resolved [absolute] path: ${absolute_path}</echo></pre> trunk/docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html
r114 r115 746 746 the file <em>reports/testsuites.xml</em> as input.</p> 747 747 748 <p><b>Important note:</b> testclasses that are not explicitly placed in a package (by using a '@package' tag in the class-level DocBlock) 749 are listed under the "default" package.</p> 750 748 751 <h2><a name="SvnExportTask"></a>SvnExportTask</h2> 749 752 <p> The <em>SvnExportTask</em> exports a Subversion repository to a local directory.</p> 750 <h3>Example</h3> 753 <h3>Examples</h3> 754 751 755 <pre><svnexport svnpath="/usr/bin/svn" repositoryurl="svn://localhost/project/trunk/" todir="/home/user/svnwc"/> 756 </pre> 757 758 <pre><svnexport svnpath="C:/Subversion/bin/svn.exe" repositoryurl="svn://localhost/project/trunk/" todir="C:/projects/svnwc"/> 752 759 </pre> 753 760 … … 790 797 <h2><a name="SvnLastRevisionTask"></a>SvnLastRevisionTask</h2> 791 798 <p> The <em>SvnLastRevisionTask</em> stores the number of the last revision of a Subversion workingcopy in a property.</p> 792 <h3>Example</h3> 793 <pre><svnlastrevision svnpath="/usr/bin/svn" workingcopy="/home/user/svnwc/" propertyname="svn.lastrevision"/> 799 <h3>Examples</h3> 800 801 <pre><svnlastrevision svnpath="/usr/bin/svn" workingcopy="/home/user/svnwc" propertyname="svn.lastrevision"/> 802 </pre> 803 804 <pre><svnlastrevision svnpath="C:/Subversion/bin/svn.exe" workingcopy="C:/projects/svnwc" propertyname="svn.lastrevision"/> 794 805 </pre> 795 806
