<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>
        <field>
          <name>useCygwinPath</name>
          <version>1.1.0+</version>
          <type>boolean</type>
          <defaultValue>false</defaultValue>
          <description><![CDATA[
             Must be true if svn is a cygwin svn command.
          ]]></description>
        </field>
        <field>
          <name>cygwinMountPath</name>
          <version>1.1.0+</version>
          <type>String</type>
          <defaultValue>/cygwin</defaultValue>
          <description><![CDATA[
             The cygwin mount path. The default value is '/cygwin'.
          ]]></description>
        </field>
      </fields>
    </class>
  </classes>
</model>
