Tuesday, November 10, 2009

Conflict detection rules

$ ccm query -name base -type model
1) base/model/base/1 ac_rel ccm_root model <void> base <void>

$ ccm attr -show conflict_parameters @1
# conflict_parameters (indicates whether to show each type of conflict)
# <conflict_number>:TRUE|FALSE
# No task associated with object
1: TRUE
# Multiple tasks associated with object
2: FALSE
# Implicitly included object
3: FALSE
# Object included by use operation?
4: TRUE
# Object implicitly required but before baseline
5: FALSE
# Object implicitly required but not included - newer
6: TRUE
# Object implicitly required but not included - parallel
7: TRUE
# Object explicitly specified but before baseline
8: FALSE
# Object explicitly specified but not included - newer
9: TRUE
# Object explicitly specified but not included - parallel
10: TRUE
# Object explicitly required but no versions of object in project
11: FALSE
# Object implicitly required but no versions of object in project
12: FALSE
# Task implicitly included
13: TRUE
# Task implicitly specified but not included
14: TRUE
# Task explicitly specified but not included
15: TRUE
# Task explicitly specified but none of its associated objects in project
16: FALSE
# Excluded task explicitly included
17: TRUE
# Excluded task implicitly included
18: TRUE
# Completed fix task not included
19: TRUE
# Assigned fix task not included
20: FALSE
# Task fixed by this task not included
21: TRUE
# Implicit task from explicit object
22: TRUE
# Implicitly required by multiple tasks - newer
23: TRUE
# Implicitly required by multiple tasks - parallel
24: TRUE

How do you query for objects from a particular Release pattern?

Follow the steps below to query the objects associated to a particular "release value pattern".
  1. Query for all the active releases using the command:

    ccm release -l -active

  2. Next to list all the projects pertaining to all the releases on the database run the command:

    ccm query -t project -f "%release"

  3. Query for all the projects pertaining to a particular release pattern:

    ccm query -t project "release match '*toolkit/*'" -f "%objectname %release"

    This lists only the projects.

  4. List all the objects on the database pertaining to this release pattern:

    ccm query "release match '*toolkit/*'" -f "%objectname %release"

    This will list all the objects in the database like process rules, reconfigure_templates, tasks, files, folders, baselines etc. The output can be huge depending on the size of the database.

  5. Query for the tasks of that particular release pattern:

    ccm query -t task "release match '*toolkit/*'" -f "%objectname %release"

  6. Query for all the objects associated to the queried release pattern.

    ccm query "is_associated_object_of('four_part_name_of_task')"

Synergy "release" object - how to query and attributes list

$ ccm query -type releasedef -name CCM
1) CCM/CCMTEST release_admin username releasedef <void> 1 <void>

$ ccm attr -la @1
_import_status_order (string) (inherited)
active (boolean) (local)
allow_dcm_transfer (boolean) (local)
allow_delimiter_in_name (boolean) (inherited)
allow_delimiter_in_version (boolean) (inherited)
atcp_attrs (text) (inherited)
auto_merge_cmd (string) (inherited)
baseline (string) (local)
can_be_product (boolean) (inherited)
cli_compare_cmd (string) (inherited)
cli_merge_cmd (string) (inherited)
component_name (string) (local)
component_release (string) (local)
create (acc_method) (inherited)
create_time (time) (local)
cvtype (string) (local)
dcm_has_modifiable_in (boolean) (inherited)
dcm_non_specific_instance (boolean) (inherited)
delete (acc_method) (inherited)
derive (acc_method) (inherited)
description (text) (local)
dflt_status (string) (inherited)
diff_source_attr (string) (inherited)
displayname (acc_method) (inherited)
export_exclude_attrs (text) (inherited)
export_exclude_relations (text) (inherited)
groups (text) (local)
gui_compare_cmd (string) (inherited)
gui_merge_cmd (string) (inherited)
icon (string) (inherited)
import_ignore_attrs (text) (inherited)
included_releases (text) (local)
is_asm (boolean) (local)
is_model (boolean) (local)
is_versioned (boolean) (inherited)
keyword_expand_attrs (text) (inherited)
manager (string) (local)
max_component_name_length (string) (inherited)
max_component_release_length (string) (inherited)
modify_time (time) (local)
name (string) (local)
next_version (acc_method) (inherited)
no_copy_on_derive (text) (inherited)
objectname (acc_method) (inherited)
owner (string) (local)
parallel_check_in (boolean) (local)
parallel_check_out (boolean) (local)
parallel_create (boolean) (inherited)
parallel_promote (boolean) (inherited)
parallel_promote_defs (text) (inherited)
parallel_promote_states (string) (inherited)
phase (text) (local)
phase_log (text) (local)
post_create (acc_method) (inherited)
post_derive (acc_method) (inherited)
post_set_status (acc_method) (inherited)
pre_create (acc_method) (inherited)
pre_derive (acc_method) (inherited)
pre_set_status (acc_method) (inherited)
relate (acc_method) (inherited)
require_task (string) (inherited)
restricted_attributes (text) (inherited)
set_status (acc_method) (inherited)
source_attrs (text) (inherited)
source_diff (acc_method) (inherited)
source_merge (acc_method) (inherited)
status (string) (local)
status_log (uptext) (local)
subsystem (string) (local)
super_type (string) (inherited)
type_description (string) (inherited)
ui_defs (acc_method) (inherited)
unrelate (acc_method) (inherited)
version (string) (local)
version_delims (text) (inherited)
version_diff (acc_method) (inherited)
wa_type (string) (inherited)
xml_export_exclude_attrs (text) (inherited)
xml_export_exclude_relations (text) (inherited)
xml_import_ignore_attrs (text) (inherited)
xml_import_noimage_attrs (text) (inherited)

Monday, November 9, 2009

How can I find all objects with a specific release tag value? - by Telelogic



Answer
The following query will return all objects which contain a release tag value of 2.0:
% ccm query "has_attr('release') and release = 'rel2.0' "
Note that as of Synergy/CM version 6.4, the value is the release name and numeric value combined, such as: Toolkit/2.0
4.5, 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0186AnswerProduct versionPartner ContentInternal ContentCategoryReference IDAuthor


Historical Number
KB858

How can I find all projects using a particular naming convention or wildcard (e.g. aaa_)? - by Telelogic


Technote (FAQ)
Question
How can I find all projects using a particular naming convention or wildcard (e.g. aaa_)?

Answer

The following cm command line query will return all projects which begin with the string: 'aaa_'

% ccm query "(name match 'aaa_*') and (type='project')"
For further examples of ccm queries, please review the Related Document as listed below "Examples of 'ccm query' Syntax".
CM Synergy 5.0, 5.1, 5.1cs, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5FAQSCM0181AnswerProduct versionPartner ContentInternal ContentCategoryReference I


Historical Number
KB839

Sunday, October 11, 2009

A couple of baseline-related queries

1. List specific project's versions that are part of any baseline:
ccm query "versions_in_a_baseline('<project_spec>')"
e.g.
$ ccm query "versions_in_a_baseline('MyProj_x#0.1_20091008:project:1')"
1)
MyProj_x#0.1_20090929 integrate user1 project MyProj_x 1 185777
2)
MyProj_x#0.1_20091004 integrate user2 project MyProj_x 1 185777
3)
MyProj _x#0.1_20091008 integrate user1 project MyProj_x 1 185777
4)
MyProj_x#MyProj_x_0.1_20090811 integrate user3 project MyProj_x 1 185777
5)
MyProj_x#MyProj_x_0.1_20090819 integrate user3 project MyProj_x 1 185777

2. List all projects in a specific baseline:
ccm baseline -show projects <baseline name>
e.g.
ccm baseline -show projects MyProj_20091008_190808 -u -f %objectname
MyProj_x#0.1_20091008:project:1

3. Show the baseline that the project is associated with:
ccm query -type project -name <proj name> -version <proj version> -f %in_baseline -u
e.g.
$ ccm query -type project -n MyProj_x -v 0.1_20091008 -f %in_baseline -u
MyProj_20091008_190808

4. Find the latest baseline created on a specific project:
ccm query "has_successor('project spec') and status='integrate'" -u -f %in_baseline
e.g. $ ccm query "has_successor('MyProj_x#0.1:project:1') and status='integrate'" -u -f %in_baseline
MyProj_20091008_190808
And combining some of above together:
Here we need to find the predecessor of the current prep project and display the name of the baseline it is part of (instead of the project object name):
This is how we would display the latest project that is in the baseline:
$ ccm query "has_successor('MyProj_x#0.1:project:1') and status='integrate'" -u -f %objectn ame
MyProj_x#0.1_20091008:project:1
And this is how we would show the project's "parent" baseline:
ccm query -type project -n proj_name -v proj_ver -f %in_baseline -u
$ ccm query -type project -n MyProj_x -v 0.1_20091008 -f %in_baseline -u
Now together:
ccm query "has_successor('proj_spec') and status='integrate'" -u -f %in_baseline

$ ccm query "has_successor('
MyProj_x#0.1:project:1') and status='integrate'" -u -f %in_baseline
MyProj_20091008_190808

Enjoy!

Monday, June 15, 2009

Merge fails complaining on java heap memory problems

Issue:

When trying to merge two (close to one another in the history) versions
of an ascii file the merge gets stack.
In the log files (both classic client and java client) there is an error
message:

06/15 08:51:10 An internal error has occurred at Mon Jun 15 08:51:10 IDT
2009
06/15 08:51:10 Unhandled runtime exception: java.lang.OutOfMemoryError
06/15 08:51:10 Exception Message: Java heap space
06/15 08:51:10
06/15 08:51:10 Stack trace:
06/15 08:51:10 java.lang.OutOfMemoryError: Java heap space


Vendor Solution:
If the size of the file is larger then 300k the following procedure worked:

1) Look for the file msynergy.lax Under the bin directory of the client
installation.

2) open the file and look for the option:
lax.nl.java.option.java.heap.size.max=90M

3) Uncomment this option by removing the pound sign (#)

4) Set the max size to 200MB

5) Save the file and restart the session, merge again.