 ------
 SCM Implementation: Perforce
 ------
 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: Perforce

* General Info

    Link : {{http://www.perforce.com/}}

    License : Commercial (It is licensed at no charge for use on open source projects.)

* 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:perforce:[username@]path_to_repository
scm:perforce:host:[port:][username@]path_to_repository    (DEPRECATED)
scm:perforce:[username@]host:[port:]path_to_repository
-------

* Examples

-------
scm:perforce://depot/modules/myproject
-------

* Associating Jobs with checkin changelist
    Many Perforce installation have a 'require job' rule/trigger turned on.
    To allow checkin when such a rule is defined, the system property maven.scm.jobs
    can be set to specify a job that will be associated with the changelist on checkin.
    Handling of multiple jobs is currently not implemented.
    Sample: -Dmaven.scm.jobs=JOB1234

*--------------------------------+----------+-------------------+------------------------------------------+
| Key                            |location  |Type               | Description                              |
*--------------------------------+----------+-------------------+------------------------------------------+
| maven.scm.jobs                 |properties|word, The job name | Job name                                 |
*--------------------------------+----------+-------------------+------------------------------------------+
