 ------
 SCM Implementation: StarTeam
 ------
 Wim Deblauwe
 ------
 2005-12-01
 ------

~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements.  See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership.  The ASF licenses this file
~~ to you 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.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html

SCM Implementation: StarTeam

* General Info

    Link : {{http://www.borland.com/us/products/starteam/index.html}}

    License : Commercial

* SCM Url

    For all URLs below, we use a colon (:) as separator. If you use a colon for one of the variables (e.g. a windows path), then use a pipe (|) as separator.

-------
scm:starteam:[username[:password]@]host:port/projectName/[viewName/][folderHiearchy/]    (DEPRECATED)
scm:starteam:[username[:password]@]host:port:/projectName/[viewName/][folderHiearchy/]
-------

* Examples

-------
scm:starteam:username:password@hostname:23456/project/view/folder1/folder2
scm:starteam:username@hostname:23456/project/view/folder
scm:starteam:hostname:23456/project/view/folder
-------

* Hidden Features

    Starteam provider has a few hidden features that currently not accessible thru maven-scm-api.
    Hidden features can be activated via system properties settings ( ie -Dkey=value ) or
    ${user.home}/.scm/starteam-settings.xml

*--------------------------------+----------+-------------------+------------------------------------------+
| Key                            |location  |Type               | Description                              |
*--------------------------------+----------+-------------------+------------------------------------------+
| compressionEnable              |settings  |boolean            | Add "-cmp" option to all stcmd executions|
*--------------------------------+----------+-------------------+------------------------------------------+
| maven.scm.starteam.deleteLocal |properties|boolean            | Issue stdcmd delete-local command after an update.|
|                                |          |                   | This feature is activated by Continuum by default|
*--------------------------------+----------+-------------------+------------------------------------------+
| maven.scm.issue.type           |properties|cr,req,task,active | Additional comment type during checkin   |
*--------------------------------+----------+-------------------+------------------------------------------+
| maven.scm.issue.value          |properties|issue type value   | Full path to the issue type value, if required|
*--------------------------------+----------+-------------------+------------------------------------------+


