By Tomas Lundström, ReadSoft
A consistent naming scheme makes your life easier and is also a good way of avoiding name clashes in AccuRev. Here follows my stab at it. (With one important disclaimer; for multi-depot installations, you should use a depot prefix for all streams, to avoid name clashes between depots)
AccuRev Codelines and Baselines
The following naming rules apply:
- Character set. For scripting compatibility, allowed characters are English alphanumericals, underscore ‘_’, hyphen ‘-’ and period ‘.’.
In particular, blanks, Swedish characters and slashes are disallowed. - Case. Product names and keywords exclusively use ALL UPPER CASE, other text and component names use mixed case.
Examples:APPROVE_REL, Libraries_DEV - Main codeline streams: <CODELINE>_<LEVEL>
Examples: APPROVE_REL, DOCUMENTS_DEV
In the basic case, there are two (optionally three) levels of streams for a codeline:- REL. Release stream, where final main releases of products are done.
- QA. QA stream (optional). If not present, the REL Stream serves QA as well
- DEV. Development stream where developers share code, and perform initial integration.
- Maintenance codeline streams (‘branches’): <CODELINE>_<VERSION>_<LEVEL>
Examples: APPROVE_5-1_REL, DOCUMENTS_6-3_DEV
Maintenance codelines may be single level, in which case it shall have the level REL, or it can be two or three levels, just like a main codeline. - Other codeline streams: <CODELINE>[_<VERSION>]_<PURPOSE>[_<LEVEL>]
Examples: APPROVE_portToVS2005, APPROVE_5-1_hotfix47
These streams are used for e.g. hotfixes, service packs, substantial tasks, subprojects, teams, experiments and acceptance tests. Most streams will be single level, so the level can be omitted. In most cases, the version can be omitted as well, since it will be evident from the context (i.e. its parent stream). - Snapshots: <PARENT STREAM>_<TIME>[_B<BUILD#>][_<PURPOSE>]
Example: APPROVE_5-1_REL_D051127T1347_B6365_iRC01
- Workspace Streams: <PARENT STREAM>[_<host>|<number>]_<USER>
Normally the default scheme should be used, where the AccuRev wizard attaches the user name to the stream name, i.e. the user name should never be explicitly written out when creating a Workspace!
If a user has several workspaces on the same stream, they have to be distinguished by some kind of identification. For workspaces on different computers, the host name shall be used. For workspaces on the same computer, an integer number shall be used.
Examples: APPROVE_DEV_3_tomas, APPROVE_DEV_buildserver12_tomas
- Reference Trees: <PARENT STREAM>_RT[_<PURPOSE>][_<host>|<number>]
A reference tree cannot have the same name as an existing reference tree or workspace. In case of conflict, use the same distinguishing naming rules as for Workspaces.
Example: APPROVE_REL_RT_NIGHTLYBUILD_buildserver12
- Pass-through streams: <CODELINE>_PT_<PURPOSE>
No changes ‘stick’ to pass-through streams. However, include/exclude rules apply, so they can e.g. be used for grouping other streams/workspaces that share visibility rules.
Example: Documentation_PT_APPROVE
<CODELINE> is typically a product or component name, such as APPROVE or Utilities
<VERSION> is the commercial product version, e.g. 5-1
<TIME> is on the form: Dyymmdd[Thhmm] Time is optional.
<PURPOSE> is used for additional comments:
- Hotfix number (HOTFIXyy)
- ServicePack number (SPyy)
- Release Candidates (iRCxx, eRCyy)
- Other useful freetext information about the purpose of the stream, such as:
- For customer specific development (e.g. pilot projects): the company name
Example: APPROVE_Volvo
- For customer specific development (e.g. pilot projects): the company name
For tasks: The task name and/or unique identifier
Example: APPROVE_PurchaseOrders