------ SCM Implementation: CM/Synergy ------ Julien Henry (Capgemini) & La Poste ------ 2006-10-23 ------ ~~ 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: CM/Synergy * General Info Link : {{http://www.telelogic.com/Products/synergy/synergycm/index.cfm}} 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:synergyproject_namedatabase_delimiterproject_versionreleasepurpose ------- : This is the name of the project from which the checkout is done. : This is the version of the project from which the checkout is done (usually a prep project). : This is the release. : This is the purpose. * Examples ------- scm:synergy:MyProject:~:int_1.0:MyProject/2.0:Devel scm|synergy|MyProject|-|int_1.0|MyProject/2.0|Devel ------- * Extra Information ** Checkout Checkout purpose is to get sources from a working Work Area to a given folder. First, it checks if a work area already exists with the given version. If yes, it only synchronizes and reconfigures the existing one, and then copies file to the expecting folder. If no Work Area exists, then a checkout is done. To specify the version of the checkout working project, use parameter. When a 'checkout' happens, the following scm commands are generated ------- ccm start -m -q -nogui -n -pw ccm query -u -f %displayname "owner='' and status='working' and type='project' and has_predecessor(':project:1')" //Check for existing checkout ccm synchronize -p ccm reconfigure -p ccm checkout -subprojects -rel [-t ] -purpose -release -p // If no existing working project exists ccm stop ------- ** Update Reconfigure project with default reconfigure template, and copy file from work area to expected folder. ------- ccm start -m -q -nogui -n -pw ccm query -u -f %displayname "owner='' and status='working' and type='project' and has_predecessor(':project:1')" //Check for existing checkout ccm reconfigure -r -p ccm stop ------- ** Add Create a default task, add new file(s) to the repository and checkin the task. You can change the synopsis of the task by setting this parameter ------- ccm start -m -q -nogui -n -pw ccm task -create -def -release -synopsis ccm create -c ccm task -checkin -comment ccm stop ------- ** Remove Remove a file from repository. ------- ccm start -m -q -nogui -n -pw ccm delete ccm stop ------- ** Changelog Get modified files history. In order to parse output of Synergy command, we need to know different parameters: * maven.scm.synergy.ccmDateFormat (default value is EEE MMM dd HH:mm:ss yyyy) * maven.scm.synergy.language (default value is en) * maven.scm.synergy.country (default value is US) [] ------- ccm start -m -q -nogui -n -pw ccm query -u is_task_in_folder_of(is_folder_in_rp_of(':project:1')) and completion_date>time() and completion_date) ccm task -show objects ccm stop ------- ** Checkin Checkin the default task. ------- ccm start -m -q -nogui -n -pw ccm task -checkin default -c ccm stop ------- ** Edit Create a default task and checkout file(s). ------- ccm start -m -q -nogui -n -pw ccm task -create -def -release -synopsis ccm co ccm stop ------- ** Unedit Cancel edition. Replace file with previous version. ------- ccm start -m -q -nogui -n -pw ccm delete -replace ccm stop ------- ** Status Get state of files. ------- ccm start -m -q -nogui -n -pw ccm dir -m ccm stop ------- ** Tag Create a baseline on the prep project. You may need to change the purpose in the pom to create the baseline (only prep purpose are allowed). ------- ccm start -m -q -nogui -n -pw ccm baseline -create -p -r -purpose ccm stop -------