You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ev...@apache.org on 2006/02/26 12:17:05 UTC

svn commit: r381077 [1/6] - in /maven/scm/trunk/maven-scm-providers: ./ maven-scm-provider-svn/ maven-scm-providers-svn/ maven-scm-providers-svn/maven-scm-provider-svn-commons/ maven-scm-providers-svn/maven-scm-provider-svn-commons/src/ maven-scm-provi...

Author: evenisse
Date: Sun Feb 26 03:16:52 2006
New Revision: 381077

URL: http://svn.apache.org/viewcvs?rev=381077&view=rev
Log:
Refactoring of maven-scm-provider-svn to maven-scm-provider-svn-commons and maven-scm-provider-svn-svnexe

Added:
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtilsTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/TestSvnScmProvider.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/repository/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepositoryTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/resources/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/resources/META-INF/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/resources/META-INF/plexus/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/test/resources/META-INF/plexus/components.xml   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/SvnExeScmProvider.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/SvnCommandLineUtils.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/add/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/add/SvnAddCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/add/SvnAddConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnCheckInCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnCheckInConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/SvnDiffCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/remove/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/remove/SvnRemoveCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/remove/SvnRemoveConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/status/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/status/SvnStatusCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/status/SvnStatusConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateConsumer.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/resources/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/resources/META-INF/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/resources/META-INF/plexus/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/resources/META-INF/plexus/components.xml   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/SvnScmTestUtils.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommandTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumerTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnCheckInCommandTckTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnCheckInCommandTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommandTckTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutCommandTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/SvnDiffCommandTckTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/status/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/status/SvnStatusCommandTckTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnTagCommandTckTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommandTckTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommandTest.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/changelog/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/changelog/svnlog.txt   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/svn/changelog/svnlog2.txt   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/tck/
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/resources/tck/tck.dump
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/pom.xml   (with props)
Removed:
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/
Modified:
    maven/scm/trunk/maven-scm-providers/pom.xml

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Feb 26 03:16:52 2006
@@ -0,0 +1,3 @@
+maven-scm-providers-svn.iws
+maven-scm-providers-svn.iml
+maven-scm-providers-svn.ipr

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Feb 26 03:16:52 2006
@@ -0,0 +1,2 @@
+target
+maven-scm-provider-svn-commons.iml

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml Sun Feb 26 03:16:52 2006
@@ -0,0 +1,33 @@
+<project>
+  <parent>
+    <groupId>org.apache.maven.scm</groupId>
+    <artifactId>maven-scm-providers-svn</artifactId>
+    <version>1.0-beta-3-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>maven-scm-provider-svn-commons</artifactId>
+  <name>Maven SCM Subversion Provider - Common library</name>
+  <version>1.0-beta-3-SNAPSHOT</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.modello</groupId>
+        <artifactId>modello-maven-plugin</artifactId>
+        <version>1.0-alpha-6</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+              <goal>xsd</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <version>1.0.0</version>
+          <model>src/main/mdo/svn-settings.mdo</model>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,364 @@
+package org.apache.maven.scm.provider.svn;
+
+/*
+ * Copyright 2003-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.provider.AbstractScmProvider;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.SvnCommand;
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
+import org.apache.maven.scm.provider.svn.util.EntriesReader;
+import org.apache.maven.scm.provider.svn.util.Entry;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.scm.repository.UnknownRepositoryStructure;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractSvnScmProvider
+    extends AbstractScmProvider
+{
+    // ----------------------------------------------------------------------
+    //
+    // ----------------------------------------------------------------------
+
+    private static class ScmUrlParserResult
+    {
+        List messages = new ArrayList();
+
+        ScmProviderRepository repository;
+    }
+
+    // ----------------------------------------------------------------------
+    // ScmProvider Implementation
+    // ----------------------------------------------------------------------
+
+    public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
+        throws ScmRepositoryException
+    {
+        ScmUrlParserResult result = parseScmUrl( scmSpecificUrl );
+
+        if ( result.messages.size() > 0 )
+        {
+            throw new ScmRepositoryException( "The scm url is invalid.", result.messages );
+        }
+
+        return result.repository;
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#makeProviderScmRepository(java.io.File)
+     */
+    public ScmProviderRepository makeProviderScmRepository( File path )
+        throws ScmRepositoryException, UnknownRepositoryStructure
+    {
+        if ( path == null || !path.isDirectory() )
+        {
+            throw new ScmRepositoryException( path.getAbsolutePath() + " isn't a valid directory." );
+        }
+
+        File svnDirectory = new File( path, ".svn" );
+
+        if ( !svnDirectory.exists() )
+        {
+            throw new ScmRepositoryException( path.getAbsolutePath() + " isn't a svn checkout directory." );
+        }
+
+        File svnEntriesFile = new File( svnDirectory, "entries" );
+
+        String svnUrl = null;
+
+        try
+        {
+            FileReader reader = new FileReader( svnEntriesFile );
+
+            EntriesReader entriesReader = new EntriesReader();
+
+            List entries = entriesReader.read( reader );
+
+            for ( Iterator i = entries.iterator(); i.hasNext(); )
+            {
+                Entry svnEntry = (Entry) i.next();
+
+                if ( "".equals( svnEntry.getName() ) )
+                {
+                    svnUrl = svnEntry.getUrl();
+                }
+            }
+        }
+        catch ( Exception e )
+        {
+            ScmRepositoryException ex = new ScmRepositoryException( "Can't read " + svnEntriesFile.getAbsolutePath() );
+
+            ex.setStackTrace( e.getStackTrace() );
+
+            throw ex;
+        }
+
+        return makeProviderScmRepository( svnUrl, ':' );
+    }
+
+
+    public List validateScmUrl( String scmSpecificUrl, char delimiter )
+    {
+        List messages = new ArrayList();
+        try
+        {
+            makeProviderScmRepository( scmSpecificUrl, delimiter );
+        }
+        catch( ScmRepositoryException e )
+        {
+            messages = e.getValidationMessages();
+        }
+        return messages;
+    }
+
+    public String getScmType()
+    {
+        return "svn";
+    }
+
+    // ----------------------------------------------------------------------
+    //
+    // ----------------------------------------------------------------------
+
+    private ScmUrlParserResult parseScmUrl( String scmSpecificUrl )
+    {
+        ScmUrlParserResult result = new ScmUrlParserResult();
+
+        String url = scmSpecificUrl;
+
+        String user = null;
+
+        String password = null;
+
+        String protocol = null;
+
+        // ----------------------------------------------------------------------
+        // Do some sanity checking of the SVN url
+        // ----------------------------------------------------------------------
+
+        if ( url.startsWith( "file" ) )
+        {
+            if ( !url.startsWith( "file:///" ) && !url.startsWith( "file://localhost/" ) )
+            {
+                result.messages.add( "A svn 'file' url must be on the form 'file:///' or 'file://localhost/'." );
+
+                return result;
+            }
+
+            protocol = "file://";
+        }
+        else if ( url.startsWith( "https" ) )
+        {
+            if ( !url.startsWith( "https://" ) )
+            {
+                result.messages.add( "A svn 'http' url must be on the form 'https://'." );
+
+                return result;
+            }
+
+            protocol = "https://";
+        }
+        else if ( url.startsWith( "http" ) )
+        {
+            if ( !url.startsWith( "http://" ) )
+            {
+                result.messages.add( "A svn 'http' url must be on the form 'http://'." );
+
+                return result;
+            }
+
+            protocol = "http://";
+        }
+        else if ( url.startsWith( "svn+ssh" ) )
+        {
+            if ( !url.startsWith( "svn+ssh://" ) )
+            {
+                result.messages.add( "A svn 'svn+ssh' url must be on the form 'svn+ssh://'." );
+
+                return result;
+            }
+
+            protocol = "svn+ssh://";
+        }
+        else if ( url.startsWith( "svn" ) )
+        {
+            if ( !url.startsWith( "svn://" ) )
+            {
+                result.messages.add( "A svn 'svn' url must be on the form 'svn://'." );
+
+                return result;
+            }
+
+            protocol = "svn://";
+        }
+        else
+        {
+            result.messages.add( url + " url isn't a valid svn URL." );
+
+            return result;
+        }
+
+        String urlPath = url.substring( protocol.length() );
+
+        int indexAt = urlPath.indexOf( "@" );
+
+        if ( indexAt > 0 && !"svn+ssh://".equals( protocol ) )
+        {
+            user = urlPath.substring( 0, indexAt );
+
+            url = protocol + urlPath.substring( indexAt + 1 );
+        }
+        else
+        {
+            url = protocol + urlPath;
+        }
+
+        result.repository = new SvnScmProviderRepository( url, user, password );
+
+        return result;
+    }
+
+    protected abstract SvnCommand getAddCommand();
+    
+    /**
+     * @see AbstractScmProvider#add(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (AddScmResult) executeCommand( getAddCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getChangeLogCommand();
+    
+    /**
+     * @see AbstractScmProvider#changelog(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (ChangeLogScmResult) executeCommand( getChangeLogCommand(), repository, fileSet, parameters );
+    }
+    
+    protected abstract SvnCommand getCheckInCommand();
+
+    /**
+     * @see AbstractScmProvider#checkin(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public CheckInScmResult checkin( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (CheckInScmResult) executeCommand( getCheckInCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getCheckOutCommand();
+    
+    /**
+     * @see AbstractScmProvider#checkout(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public CheckOutScmResult checkout( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (CheckOutScmResult) executeCommand( getCheckOutCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getDiffCommand();
+    
+    /**
+     * @see AbstractScmProvider#diff(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (DiffScmResult) executeCommand( getDiffCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getRemoveCommand();
+    
+    /**
+     * @see AbstractScmProvider#remove(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (RemoveScmResult) executeCommand( getRemoveCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getStatusCommand();
+    
+    /**
+     * @see AbstractScmProvider#status(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (StatusScmResult) executeCommand( getStatusCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getTagCommand();
+    
+    /**
+     * @see AbstractScmProvider#tag(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (TagScmResult) executeCommand( getTagCommand(), repository, fileSet, parameters );
+    }
+
+    protected abstract SvnCommand getUpdateCommand();
+    
+    /**
+     * @see AbstractScmProvider#update(ScmRepository, ScmFileSet, CommandParameters)
+     */
+    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        return (UpdateScmResult) executeCommand( getUpdateCommand(), repository, fileSet, parameters );
+    }
+    
+    protected ScmResult executeCommand( SvnCommand command, ScmRepository repository, ScmFileSet fileSet,
+                                    CommandParameters parameters )
+        throws ScmException
+    {
+        command.setLogger( getLogger() );
+
+        return command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/AbstractSvnScmProvider.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,61 @@
+package org.apache.maven.scm.provider.svn;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.ChangeFile;
+import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
+
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnChangeSet
+    extends ChangeSet
+{
+    public boolean containsFilename( String filename, ScmProviderRepository repository )
+    {
+        SvnScmProviderRepository repo = (SvnScmProviderRepository) repository;
+
+        String url = repo.getUrl();
+
+        if ( !url.endsWith( "/" ) )
+        {
+            url += "/";
+        }
+
+        String currentFile = url + filename;
+
+        if ( getFiles() != null )
+        {
+            for ( Iterator i = getFiles().iterator(); i.hasNext(); )
+            {
+                ChangeFile file = (ChangeFile) i.next();
+
+                if ( currentFile.endsWith( file.getName() ) )
+                {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnChangeSet.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,263 @@
+package org.apache.maven.scm.provider.svn;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
+import org.codehaus.plexus.util.StringUtils;
+
+public class SvnTagBranchUtils
+{
+
+    public final static String[] REVISION_SPECIFIERS = new String[]{"HEAD", "BASE", "COMMITTED", "PREV"};
+
+    public final static String SVN_TRUNK = "trunk";
+
+    public final static String SVN_BRANCHES = "branches";
+
+    public final static String SVN_TAGS = "tags";
+
+    public final static String[] SVN_BASE_DIRS = new String[]{SVN_TRUNK, SVN_BRANCHES, SVN_TAGS};
+
+    /**
+     * Simple helper function to concatenate two paths together with a "/".
+     * Handles trailing / on basePath.
+     * Returns no trailing "/" if the addlPath is null
+     */
+    static String appendPath( String basePath, String addlPath )
+    {
+        basePath = StringUtils.stripEnd( basePath, "/" );
+
+        if ( StringUtils.isEmpty( addlPath ) )
+        {
+            return basePath;
+        }
+        else
+        {
+            return basePath + "/" + StringUtils.stripStart( addlPath, "/" );
+        }
+    }
+
+    /**
+     * Returns the project root for the given repository url,
+     * where "project root" is the root of the /trunk, /branches, /tags
+     * directories
+     *
+     * @param repoPath Repository path/url to be searched
+     * @return
+     */
+    public static String getProjectRoot( String repoPath )
+    {
+        for ( int i = 0; i < SVN_BASE_DIRS.length; i++ )
+        {
+            String base = "/" + SVN_BASE_DIRS[i];
+            int pos = repoPath.indexOf( base + "/" );
+            if ( pos >= 0 )
+            {
+                return repoPath.substring( 0, pos );
+            }
+            else if ( repoPath.endsWith( base ) )
+            {
+                return repoPath.substring( 0, repoPath.length() - base.length() );
+            }
+        }
+
+        // At this point we were unable to locate the project root of this url
+        // so assume that the repository url specified is the project root
+        return appendPath( repoPath, null );
+    }
+
+    /**
+     * Resolves a tag to a repository url.
+     * By supplying the repository to this function (rather than calling {@link #resolveTagUrl(String, String)}
+     * the resolution can use the repository's tagBase to override the default tag location.
+     *
+     * @param repository the repository to use as a base for tag resolution
+     * @param tag        tag name
+     * @return
+     * @see #resolveUrl(SvnScmProviderRepository, String, String)
+     */
+    public static String resolveTagUrl( SvnScmProviderRepository repository, String tag )
+    {
+        return resolveUrl( repository.getUrl(), repository.getTagBase(), SVN_TAGS, tag );
+    }
+
+    /**
+     * Resolves a tag to a repository url.
+     * Will not use the {@link SvnScmProviderRepository#getTagBase()} during resolution.
+     *
+     * @param repositoryUrl string url for the repository
+     * @param tag           tag name
+     * @return
+     * @see #resolveUrl(SvnScmProviderRepository, String, String)
+     */
+    public static String resolveTagUrl( String repositoryUrl, String tag )
+    {
+        return resolveUrl( repositoryUrl, null, SVN_TAGS, tag );
+    }
+
+    /**
+     * Resolves a branch name to a repository url.
+     * By supplying the repository to this function (rather than calling {@link #resolveBranchUrl(String, String)}
+     * the resolution can use the repository's tagBase to override the default tag location.
+     *
+     * @param repository the repository to use as a base for tag resolution
+     * @param branch     tag name
+     * @return
+     * @see #resolveUrl(SvnScmProviderRepository, String, String)
+     */
+    public static String resolveBranchUrl( SvnScmProviderRepository repository, String branch )
+    {
+        return resolveUrl( repository.getUrl(), repository.getTagBase(), SVN_BRANCHES, branch );
+    }
+
+    /**
+     * Resolves a branch name to a repository url.
+     * Will not use the {@link SvnScmProviderRepository#getTagBase()} during resolution.
+     *
+     * @param repositoryUrl string url for the repository
+     * @param branch        branch name
+     * @return
+     * @see #resolveUrl(SvnScmProviderRepository, String, String)
+     */
+    public static String resolveBranchUrl( String repositoryUrl, String branch )
+    {
+        return resolveUrl( repositoryUrl, null, SVN_BRANCHES, branch );
+    }
+
+    private static String addSuffix( String baseString, String suffix )
+    {
+        return ( suffix != null ) ? baseString + suffix : baseString;
+    }
+
+
+    /**
+     * Resolves a tag or branch name to a repository url.<br>
+     * If the <code>branchTagName</code> is an absolute URL, that value is returned.
+     * (i.e. http://foo.com/svn/myproject/tags/my-tag)<br>
+     * <p/>
+     * If the repository has a {@link SvnScmProviderRepository#getTagBase()} specified,
+     * the tag is simply appended to the tagBase value. Note that at this time, we are using
+     * the tagBase as a base for both branches and tags.<br>
+     * <p/>
+     * If the <code>branchTagName</code> contains a branch/tag specifier (i.e. "/branches", "/tags", "/trunk"),
+     * the <code>branchTagName</code> is appended to the <code>projectRoot</code> without adding the subdir.<br>
+     * Else, the result is in the format of <code>projectRoot/subdir/branchTagName</code> directory.<br>
+     *
+     * @param projectRoot   Project root to use when building the url.
+     * @param subdir        Subdirectory to append to the project root
+     *                      (for branching use "branches", tags use "tags")
+     * @param branchTagName Name of the actual branch or tag. Can be an absolute url, simple tag/branch name,
+     *                      or even contain a relative path to the root like "branches/my-branch"
+     * @return
+     */
+    public static String resolveUrl( String repositoryUrl, String tagBase, String subdir, String branchTagName )
+    {
+        String projectRoot = getProjectRoot( repositoryUrl );
+        branchTagName = StringUtils.strip( branchTagName, "/" );
+
+        if ( StringUtils.isEmpty( branchTagName ) )
+        {
+            return null;
+        }
+
+        // Look for a query string as in ViewCVS urls
+        String queryString = null;
+        if ( repositoryUrl.indexOf( "?" ) >= 0 )
+        {
+            queryString = repositoryUrl.substring( repositoryUrl.indexOf( "?" ) );
+        }
+
+        if ( branchTagName.indexOf( "://" ) >= 0 )
+        {
+            // branch/tag is already an absolute url so just return it. 
+            return branchTagName;
+        }
+
+        // User has a tagBase specified so just return the name appended to the tagBase
+        if ( StringUtils.isNotEmpty( tagBase ) )
+        {
+            return appendPath( tagBase, branchTagName );
+        }
+
+        // Look for any "branches/" or "tags/" specifiers in the branchTagName. If one occurs,
+        // don't append the subdir to the projectRoot when appending the name
+        for ( int i = 0; i < SVN_BASE_DIRS.length; i++ )
+        {
+            if ( branchTagName.startsWith( SVN_BASE_DIRS[i] + "/" ) )
+            {
+                return addSuffix( appendPath( projectRoot, branchTagName ), queryString );
+            }
+        }
+
+        return addSuffix( appendPath( appendPath( projectRoot, subdir ), branchTagName ), queryString );
+    }
+
+    /* Helper function that does the checking for {@link #isRevisionSpecifier} 
+     */
+    private static boolean checkRevisionArg( String arg )
+    {
+        if ( StringUtils.isNumeric( arg ) || ( arg.startsWith( "{" ) && arg.endsWith( "}" ) ) )
+        {
+            return true;
+        }
+
+        for ( int i = 0; i < REVISION_SPECIFIERS.length; i++ )
+        {
+            if ( REVISION_SPECIFIERS[i].equalsIgnoreCase( arg ) )
+            {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns whether the supplied tag refers to an actual revision or
+     * is specifying a tag/branch url in the repository.
+     * According to the subversion documentation, the following are valid revision specifiers:
+     * NUMBER       revision number
+     * "{" DATE "}" revision at start of the date
+     * "HEAD"       latest in repository
+     * "BASE"       base rev of item's working copy
+     * "COMMITTED"  last commit at or before BASE
+     * "PREV"
+     * <p/>
+     * For command such as diff, the revision argument can be in the format of:
+     * IDENTIFIER:IDENTIFIER   where IDENTIFIER is one of the args listed above
+     */
+    public static boolean isRevisionSpecifier( String tag )
+    {
+        if ( StringUtils.isEmpty( tag ) )
+        {
+            return false;
+        }
+
+        if ( checkRevisionArg( tag ) )
+        {
+            return true;
+        }
+
+        String[] parts = StringUtils.split( tag, ":" );
+        if ( parts.length == 2 && StringUtils.isNotEmpty( parts[0] ) && StringUtils.isNotEmpty( parts[1] ) )
+        {
+            return checkRevisionArg( parts[0] ) && checkRevisionArg( parts[1] );
+        }
+
+        return false;
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/SvnTagBranchUtils.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,28 @@
+package org.apache.maven.scm.provider.svn.command;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.command.Command;
+
+/**
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @version $Id$
+ */
+public interface SvnCommand
+    extends Command
+{
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,162 @@
+package org.apache.maven.scm.provider.svn.command.diff;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.log.ScmLogger;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ */
+public class SvnDiffConsumer
+    implements StreamConsumer
+{
+    //
+    // Index: plugin.jelly
+    // ===================================================================
+    // --- plugin.jelly        (revision 124799)
+    // +++ plugin.jelly        (working copy)
+    //
+
+    private final static String INDEX_TOKEN = "Index: ";
+
+    private final static String FILE_SEPARATOR_TOKEN = "===";
+
+    private final static String START_REVISION_TOKEN = "---";
+
+    private final static String END_REVISION_TOKEN = "+++";
+
+    private final static String ADDED_LINE_TOKEN = "+";
+
+    private final static String REMOVED_LINE_TOKEN = "-";
+
+    private final static String UNCHANGED_LINE_TOKEN = " ";
+
+    private final static String CHANGE_SEPARATOR_TOKEN = "@@";
+
+    private final static String NO_NEWLINE_TOKEN = "\\ No newline at end of file";
+
+    private ScmLogger logger;
+
+    private String currentFile;
+
+    private StringBuffer currentDifference;
+
+    private List changedFiles = new ArrayList();
+
+    private Map differences = new HashMap();
+
+    private StringBuffer patch = new StringBuffer();
+
+    // ----------------------------------------------------------------------
+    //
+    // ----------------------------------------------------------------------
+
+    public SvnDiffConsumer( ScmLogger logger, File workingDirectory )
+    {
+        this.logger = logger;
+    }
+
+    // ----------------------------------------------------------------------
+    // StreamConsumer Implementation
+    // ----------------------------------------------------------------------
+
+    public void consumeLine( String line )
+    {
+        if ( line.startsWith( INDEX_TOKEN ) )
+        {
+            // start a new file
+            currentFile = line.substring( INDEX_TOKEN.length() );
+
+            changedFiles.add( new ScmFile( currentFile, ScmFileStatus.MODIFIED ) );
+
+            currentDifference = new StringBuffer();
+
+            differences.put( currentFile, currentDifference );
+
+            patch.append( line ).append( "\n" );
+
+            return;
+        }
+
+        if ( currentFile == null )
+        {
+            logger.warn( "Unparseable line: '" + line + "'" );
+            patch.append( line ).append( "\n" );
+            return;
+        }
+
+        if ( line.startsWith( FILE_SEPARATOR_TOKEN ) )
+        {
+            // skip
+            patch.append( line ).append( "\n" );
+        }
+        else if ( line.startsWith( START_REVISION_TOKEN ) )
+        {
+            // skip, though could parse to verify filename, start revision
+            patch.append( line ).append( "\n" );
+        }
+        else if ( line.startsWith( END_REVISION_TOKEN ) )
+        {
+            // skip, though could parse to verify filename, end revision
+            patch.append( line ).append( "\n" );
+        }
+        else if ( line.startsWith( ADDED_LINE_TOKEN ) || line.startsWith( REMOVED_LINE_TOKEN ) ||
+            line.startsWith( UNCHANGED_LINE_TOKEN ) || line.startsWith( CHANGE_SEPARATOR_TOKEN ) ||
+            line.equals( NO_NEWLINE_TOKEN ) )
+        {
+            // add to buffer
+            currentDifference.append( line ).append( "\n" );
+            patch.append( line ).append( "\n" );
+        }
+        else
+        {
+            // TODO: handle property differences
+
+            logger.warn( "Unparseable line: '" + line + "'" );
+            patch.append( line ).append( "\n" );
+            // skip to next file
+            currentFile = null;
+            currentDifference = null;
+        }
+    }
+
+    public List getChangedFiles()
+    {
+        return changedFiles;
+    }
+
+    public Map getDifferences()
+    {
+        return differences;
+    }
+
+    public String getPatch()
+    {
+        return patch.toString();
+    }
+
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/diff/SvnDiffConsumer.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,43 @@
+package org.apache.maven.scm.provider.svn.command.update;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.command.update.UpdateScmResult;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @version $Id$
+ */
+public class SvnUpdateScmResult
+    extends UpdateScmResult
+{
+    private int revision;
+
+    public SvnUpdateScmResult( String commandLine, List updatedFiles, int revision )
+    {
+        super( commandLine, updatedFiles );
+
+        this.revision = revision;
+    }
+
+    public int getRevision()
+    {
+        return revision;
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateScmResult.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,131 @@
+package org.apache.maven.scm.provider.svn.repository;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.provider.ScmProviderRepositoryWithHost;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnScmProviderRepository
+    extends ScmProviderRepositoryWithHost
+{
+    /** */
+    private String url;
+
+    /**
+     * The base directory for any tags. Can be relative to the repository URL or an absolute URL.
+     */
+    private String tagBase;
+
+    public SvnScmProviderRepository( String url, String user, String password )
+    {
+        setUser( user );
+
+        setPassword( password );
+
+        parseUrl( url );
+    }
+
+    public String getUrl()
+    {
+        return url;
+    }
+
+    /**
+     * Returns the url/directory to be used when tagging this repository.
+     */
+    public String getTagBase()
+    {
+        return tagBase;
+    }
+
+    /**
+     * Sets the url/directory to be used when tagging this repository.
+     * The TagBase is a way to override the default tag location for the
+     * repository.  The default tag location is automatically determined
+     * for repositories in the standard subversion layout (with /tags /branches /trunk).
+     * Specify this value only if the repository is using a directory other than "/tags" for tagging.
+     *
+     * @param tagBase an absolute or relative url to the base directory to create tags in.
+     *                URL should be in a format that svn client understands, not the scm url format.
+     */
+    public void setTagBase( String tagBase )
+    {
+        this.tagBase = tagBase;
+    }
+
+    private void parseUrl( String url )
+    {
+        String protocol = null;
+
+        if ( url.startsWith( "file" ) )
+        {
+            protocol = "file://";
+        }
+        else if ( url.startsWith( "https" ) )
+        {
+            protocol = "https://";
+        }
+        else if ( url.startsWith( "http" ) )
+        {
+            protocol = "http://";
+        }
+        else if ( url.startsWith( "svn+ssh" ) )
+        {
+            protocol = "svn+ssh://";
+        }
+        else if ( url.startsWith( "svn" ) )
+        {
+            protocol = "svn://";
+        }
+
+        String urlPath = url.substring( protocol.length() );
+
+        int indexAt = urlPath.indexOf( "@" );
+
+        if ( indexAt > 0 && !"svn+ssh://".equals( protocol ) )
+        {
+            setUser( urlPath.substring( 0, indexAt ) );
+
+            urlPath = urlPath.substring( indexAt + 1 );
+
+            this.url = protocol + urlPath;
+        }
+        else
+        {
+            this.url = protocol + urlPath;
+        }
+
+        if ( !"file://".equals( protocol ) )
+        {
+            int indexSlash = urlPath.indexOf( "/" );
+            if ( indexSlash > 0 )
+            {
+                String hostPort = urlPath.substring( 0, indexSlash );
+                int indexColon = hostPort.indexOf( ":" );
+
+                if ( indexColon > 0 )
+                {
+                    setHost( hostPort.substring( 0, indexColon ) );
+                    setPort( Integer.parseInt( hostPort.substring( indexColon + 1 ) ) );
+                }
+            }
+        }
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,92 @@
+package org.apache.maven.scm.provider.svn.util;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.plexus.util.xml.pull.MXParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+
+public class EntriesReader
+{
+    public List read( Reader reader )
+        throws IOException, XmlPullParserException
+    {
+        XmlPullParser parser = new MXParser();
+
+        parser.setInput( reader );
+
+        List entries = new ArrayList();
+
+        int eventType = parser.getEventType();
+
+        while ( eventType != XmlPullParser.END_DOCUMENT )
+        {
+            if ( eventType == XmlPullParser.START_TAG )
+            {
+                while ( parser.nextTag() == XmlPullParser.START_TAG )
+                {
+                    if ( parser.getName().equals( "entry" ) )
+                    {
+                        entries.add( parseEntry( "entry", parser ) );
+                    }
+                    else
+                    {
+                        parser.nextText();
+                    }
+                }
+            }
+            eventType = parser.next();
+        }
+
+        return entries;
+    }
+
+    private Entry parseEntry( String tagName, XmlPullParser parser )
+        throws IOException, XmlPullParserException
+    {
+        Entry entry = new Entry();
+
+        entry.setName( getTrimmedValue( parser.getAttributeValue( "", "name" ) ) );
+
+        entry.setUrl( getTrimmedValue( parser.getAttributeValue( "", "url" ) ) );
+
+        return entry;
+    }
+
+    public int getIntegerValue( String s )
+    {
+        if ( s != null )
+        {
+            return Integer.valueOf( s ).intValue();
+        }
+        return 0;
+    }
+
+    public String getTrimmedValue( String s )
+    {
+        if ( s != null )
+        {
+            s = s.trim();
+        }
+        return s;
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/EntriesReader.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,289 @@
+package org.apache.maven.scm.provider.svn.util;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Class Entry.
+ *
+ * @version $Revision: 372209 $ $Date$
+ */
+public class Entry
+    implements java.io.Serializable
+{
+
+    //--------------------------/
+    //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field committedRevision
+     */
+    private int committedRevision = 0;
+
+    /**
+     * Field name
+     */
+    private String name;
+
+    /**
+     * Field committedDate
+     */
+    private String committedDate;
+
+    /**
+     * Field url
+     */
+    private String url;
+
+    /**
+     * Field lastAuthor
+     */
+    private String lastAuthor;
+
+    /**
+     * Field kind
+     */
+    private String kind;
+
+    /**
+     * Field uuid
+     */
+    private String uuid;
+
+    /**
+     * Field propertyTime
+     */
+    private String propertyTime;
+
+    /**
+     * Field revision
+     */
+    private int revision = 0;
+
+    /**
+     * Field textTime
+     */
+    private String textTime;
+
+    /**
+     * Field checksum
+     */
+    private String checksum;
+
+    //-----------/
+    //- Methods -/
+    //-----------/
+
+    /**
+     * Method getChecksum
+     */
+    public String getChecksum()
+    {
+        return this.checksum;
+    } //-- String getChecksum() 
+
+    /**
+     * Method getCommittedDate
+     */
+    public String getCommittedDate()
+    {
+        return this.committedDate;
+    } //-- String getCommittedDate() 
+
+    /**
+     * Method getCommittedRevision
+     */
+    public int getCommittedRevision()
+    {
+        return this.committedRevision;
+    } //-- int getCommittedRevision() 
+
+    /**
+     * Method getKind
+     */
+    public String getKind()
+    {
+        return this.kind;
+    } //-- String getKind() 
+
+    /**
+     * Method getLastAuthor
+     */
+    public String getLastAuthor()
+    {
+        return this.lastAuthor;
+    } //-- String getLastAuthor() 
+
+    /**
+     * Method getName
+     */
+    public String getName()
+    {
+        return this.name;
+    } //-- String getName() 
+
+    /**
+     * Method getPropertyTime
+     */
+    public String getPropertyTime()
+    {
+        return this.propertyTime;
+    } //-- String getPropertyTime() 
+
+    /**
+     * Method getRevision
+     */
+    public int getRevision()
+    {
+        return this.revision;
+    } //-- int getRevision() 
+
+    /**
+     * Method getTextTime
+     */
+    public String getTextTime()
+    {
+        return this.textTime;
+    } //-- String getTextTime() 
+
+    /**
+     * Method getUrl
+     */
+    public String getUrl()
+    {
+        return this.url;
+    } //-- String getUrl() 
+
+    /**
+     * Method getUuid
+     */
+    public String getUuid()
+    {
+        return this.uuid;
+    } //-- String getUuid() 
+
+    /**
+     * Method setChecksum
+     *
+     * @param checksum
+     */
+    public void setChecksum( String checksum )
+    {
+        this.checksum = checksum;
+    } //-- void setChecksum(String) 
+
+    /**
+     * Method setCommittedDate
+     *
+     * @param committedDate
+     */
+    public void setCommittedDate( String committedDate )
+    {
+        this.committedDate = committedDate;
+    } //-- void setCommittedDate(String) 
+
+    /**
+     * Method setCommittedRevision
+     *
+     * @param committedRevision
+     */
+    public void setCommittedRevision( int committedRevision )
+    {
+        this.committedRevision = committedRevision;
+    } //-- void setCommittedRevision(int) 
+
+    /**
+     * Method setKind
+     *
+     * @param kind
+     */
+    public void setKind( String kind )
+    {
+        this.kind = kind;
+    } //-- void setKind(String) 
+
+    /**
+     * Method setLastAuthor
+     *
+     * @param lastAuthor
+     */
+    public void setLastAuthor( String lastAuthor )
+    {
+        this.lastAuthor = lastAuthor;
+    } //-- void setLastAuthor(String) 
+
+    /**
+     * Method setName
+     *
+     * @param name
+     */
+    public void setName( String name )
+    {
+        this.name = name;
+    } //-- void setName(String) 
+
+    /**
+     * Method setPropertyTime
+     *
+     * @param propertyTime
+     */
+    public void setPropertyTime( String propertyTime )
+    {
+        this.propertyTime = propertyTime;
+    } //-- void setPropertyTime(String) 
+
+    /**
+     * Method setRevision
+     *
+     * @param revision
+     */
+    public void setRevision( int revision )
+    {
+        this.revision = revision;
+    } //-- void setRevision(int) 
+
+    /**
+     * Method setTextTime
+     *
+     * @param textTime
+     */
+    public void setTextTime( String textTime )
+    {
+        this.textTime = textTime;
+    } //-- void setTextTime(String) 
+
+    /**
+     * Method setUrl
+     *
+     * @param url
+     */
+    public void setUrl( String url )
+    {
+        this.url = url;
+    } //-- void setUrl(String) 
+
+    /**
+     * Method setUuid
+     *
+     * @param uuid
+     */
+    public void setUuid( String uuid )
+    {
+        this.uuid = uuid;
+    } //-- void setUuid(String) 
+
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/Entry.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java Sun Feb 26 03:16:52 2006
@@ -0,0 +1,66 @@
+package org.apache.maven.scm.provider.svn.util;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.scm.providers.svn.settings.Settings;
+import org.apache.maven.scm.providers.svn.settings.io.xpp3.SvnXpp3Reader;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnUtil
+{
+    private SvnUtil()
+    {
+    }
+
+    public static Settings getSettings()
+    {
+        File scmUserDir = new File( System.getProperty( "user.dir" ), ".scm" );
+        File settingsFile = new File( scmUserDir, "svn-settings.xml" );
+
+        if ( settingsFile.exists() )
+        {
+            SvnXpp3Reader reader = new SvnXpp3Reader();
+            try
+            {
+                return reader.read( new FileReader( settingsFile ) );
+            }
+            catch ( FileNotFoundException e )
+            {
+            }
+            catch ( IOException e )
+            {
+            }
+            catch ( XmlPullParserException e )
+            {
+                String message = settingsFile.getAbsolutePath() + " isn't well formed. SKIPPED." + e.getMessage();
+
+                System.out.println( message );
+            }
+        }
+
+        return new Settings();
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/java/org/apache/maven/scm/provider/svn/util/SvnUtil.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo?rev=381077&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/src/main/mdo/svn-settings.mdo Sun Feb 26 03:16:52 2006
@@ -0,0 +1,28 @@
+<model>
+  <id>svn</id>
+  <name>Svn</name>
+  <description>SVN Provider Model.</description>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.maven.scm.providers.svn.settings</value>
+    </default>
+  </defaults>
+
+  <classes>
+    <class rootElement="true" xml.tagName="svn-settings">
+      <name>Settings</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>configDirectory</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description><![CDATA[
+             Instructs Subversion to read configuration information from the specified directory instead of the default location.
+          ]]></description>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</model>