Why is output of lscm compare inconsistent?
I am using the lscm compare command to show differences between two streams. The problem is, the output seems inconsistent. It could be that I just don't don't understand the nuances of the output but on the other hand, output on Windows seem mostly "normal" - i.e, what I would expect, while output on linux is strange.
Windows command: C:\path-to-component\master>lscm compare -r "local" -I "dcf" ws "mbe release uat build" stream "MBE Release PROD"
Outgoing Changes
Component (1901) "batch"
Component (1888) "commonutils"
/commonutils/MBEUtil/build.gradle
/MBEUtil/build
/MBEUtil/build/classes
/MBEUtil/build/classes/main
/MBEUtil/build/classes/main/org
/MBEUtil/build/classes/main/org/kp
/MBEUtil/build/classes/main/org/kp/mbe
/MBEUtil/build/classes/main/org/kp/mbe/enums
/MBEUtil/build/classes/main/org/kp/mbe/logger
/MBEUtil/build/classes/main/org/kp/mbe/util
Linux command: $ lscm compare -r "local" -I "dcf" ws "mbe release uat build" stream "MBE Release PROD"
Outgoing Changes
Component (1002) "batch"
Component (1004) "commonutils"
/MBEUtil/build
/MBEUtil/build/classes
/MBEUtil/build/classes/main
/MBEUtil/build/classes/main/org
/MBEUtil/build/classes/main/org/kp
/MBEUtil/build/classes/main/org/kp/mbe
/MBEUtil/build/classes/main/org/kp/mbe/enums
/MBEUtil/build/classes/main/org/kp/mbe/logger
/MBEUtil/build/classes/main/org/kp/mbe/util
Question 1: Is it normal for the component IDs in two different workspaces from the same stream to be different? I don't have a problem with that, but it's a bit counter-intuitive.
More output, linux:
Component (1010) "master"
/arscli-test.properties/arscli-test.properties
/build.gradle/build.gradle
/buildnumber.properties/buildnumber.properties
/buildSrc/buildSrc/build.gradle
/buildSrc/buildSrc/instruct_style_txt.xml
/buildSrc/buildSrc/src/main/groovy/CompareWtoS.groovy
/buildSrc/buildSrc/src/main/groovy/Deliver.groovy
/buildSrc/buildSrc/src/main/groovy/Executor.groovy
/logging.properties/logging.properties
Component (1012) "mbestaging"
/alter/alter/cm-alter-13-MBE_PEP_STAGING_STATUS.sql
/alter/alter/cm-alter-16-EXTERNAL_SYSTEMS_CREATE.SQL
/day-one/day-one/MBE_PROPERTY_CONTROLLER.sql
/day-one/day-one/MBE_T4_STATUS_TABLE.sql
/db-objects/db-objects/MBE_PROCESS_T4.sql
Question 2: Why does the path sometimes include the component name and sometimes not? In all cases workspaces were loaded to include component as the parent folder.
Question 3: Is it a bug when the first subpath is repeated? E.g., above where you see buildSrc/buildSrc and alter/alter, and day-one/day-one, those are not actual duplicate folder names. The same component from Windows looks (correctly) like this:
Component (1907) "mbestaging"
/mbestaging/alter/cm-alter-13-MBE_PEP_STAGING_STATUS.sql
/mbestaging/alter/cm-alter-16-EXTERNAL_SYSTEMS_CREATE.SQL
/mbestaging/day-one/MBE_PROPERTY_CONTROLLER.sql
/mbestaging/day-one/MBE_T4_STATUS_TABLE.sql
/mbestaging/db-objects/MBE_PROCESS_T4.sql
Note the inclusion of the component name in the path (which is how all these workspaces were loaded). The same issues are evident using json output.
Does anyone have any idea? Mainly, it's hard for me to write any scripts when I don't know consistently whether the path includes the component name and obviously, the duplicate path parts are problematic.
Any help would be appreciated. Thanks!
- Andy
Accepted answer
1. The numbers shown in parenthesis are not UUID's. Those are called aliases so that it could easily referenced/typed in the command line operations rather than specifying a longer cryptic UUID. These aliases are command line tool specific and it also differs from system to system for the same artifact. Aliases start from 1000 and rollover after 9999. Do not use aliases in scripts. Use UUID's and to show uuid specify the -u option as follows... 'lscm -u y compare ....'
2. Compare should not be concerned about how the component was loaded. What is confusing here is that the ouptut of windows in the first example for component 'commonutils' does not show the component name in the paths except in the first item where as in last example for component 'mbestaging' it shows the component name in all the paths. It is a defect.
3. The folder name must not be repeated. It is a defect.
Opened defect for points 2 & 3: https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=288241