Not able to accept a changeset in a baseline by command
I am not able to accept a changeset in a baseline, see the steps & results:
C:\dataRTCAdmin>lscm list changesets -b 5483 -C RTCComponent2 -w RTCStream
Change sets:
(5478) ----$ user2 "test" 13-Aug-2014 09:55 AM
(5474) ----$ user2 "test" 13-Aug-2014 09:53 AM
(5480) ----$ admin "Initial for RTCComponent2" 13-Aug-2014 09:18 AM
C:\dataRTCAdmin>lscm list changesets -w RTCStream
Change sets:
(5478) ----$ user2 "test" 13-Aug-2014 09:55 AM
(5477) ----$ user1 "test" 13-Aug-2014 09:55 AM
(5476) ----$ user1 "test" 13-Aug-2014 09:54 AM
(5474) ----$ user2 "test" 13-Aug-2014 09:53 AM
(5479) ----$ admin "Initial for RTCComponent1" 13-Aug-2014 09:22 AM
(5480) ----$ admin "Initial for RTCComponent2" 13-Aug-2014 09:18 AM
C:\dataRTCAdmin>lscm status
Workspace: (5452) "RTCWorkspace" <-> (5468) "RTCStream"
Component: (5472) "RTCComponent1"
Baseline: (5475) 1 "Initial Baseline"
Incoming:
Change sets:
(5477) ----$ user1 "test" 13-Aug-2014 09:55 AM
(5476) ----$ user1 "test" 13-Aug-2014 09:54 AM
Component: (5471) "RTCComponent2"
Baseline: (5473) 1 "Initial Baseline"
Incoming:
Baselines:
(5483) 2 "user2-0813"
C:\dataRTCAdmin>lscm list changesets -w RTCWorkspace
Change sets:
(5479) ----$ admin "Initial for RTCComponent1" 13-Aug-2014 09:22 AM
(5480) ----$ admin "Initial for RTCComponent2" 13-Aug-2014 09:18 AM
C:\dataRTCAdmin>lscm accept changeset -c 5474 ( accept this changeset into RTCWorkspace)
Problem running 'accept':
Specified alias or UUID "changeset" is either not found or is invalid.
C:\dataRTCAdmin>lscm list changesets -b 5483 -C RTCComponent2 -w RTCStream
Change sets:
(5478) ----$ user2 "test" 13-Aug-2014 09:55 AM
(5474) ----$ user2 "test" 13-Aug-2014 09:53 AM
(5480) ----$ admin "Initial for RTCComponent2" 13-Aug-2014 09:18 AM
C:\dataRTCAdmin>lscm list changesets -w RTCStream
Change sets:
(5478) ----$ user2 "test" 13-Aug-2014 09:55 AM
(5477) ----$ user1 "test" 13-Aug-2014 09:55 AM
(5476) ----$ user1 "test" 13-Aug-2014 09:54 AM
(5474) ----$ user2 "test" 13-Aug-2014 09:53 AM
(5479) ----$ admin "Initial for RTCComponent1" 13-Aug-2014 09:22 AM
(5480) ----$ admin "Initial for RTCComponent2" 13-Aug-2014 09:18 AM
C:\dataRTCAdmin>lscm status
Workspace: (5452) "RTCWorkspace" <-> (5468) "RTCStream"
Component: (5472) "RTCComponent1"
Baseline: (5475) 1 "Initial Baseline"
Incoming:
Change sets:
(5477) ----$ user1 "test" 13-Aug-2014 09:55 AM
(5476) ----$ user1 "test" 13-Aug-2014 09:54 AM
Component: (5471) "RTCComponent2"
Baseline: (5473) 1 "Initial Baseline"
Incoming:
Baselines:
(5483) 2 "user2-0813"
C:\dataRTCAdmin>lscm list changesets -w RTCWorkspace
Change sets:
(5479) ----$ admin "Initial for RTCComponent1" 13-Aug-2014 09:22 AM
(5480) ----$ admin "Initial for RTCComponent2" 13-Aug-2014 09:18 AM
C:\dataRTCAdmin>lscm accept changeset -c 5474 ( accept this changeset into RTCWorkspace)
Problem running 'accept':
Specified alias or UUID "changeset" is either not found or is invalid.
Accepted answer
samuel wang,
As to your specific problem, you don't put 'changeset' in the 'scm accept' command, you just provide the '-c' context and the alias so it knows to refer to a changeset. The error indicates that you are literally trying to accept something with an alias/UUID of 'changeset' and not the alias string you want.
For CLI use, I would heavily recommend against using aliases, they are nice shorthand if you are interactively using the CLI as an end-user, but for scripting they are not reliable.
First, I've seen (with RTC 4.0.3 at least) no aliases given when the number of returned objects from a 'scm' call is too large. Second, as the documentation states at https://jazz.net/help-dev/clm/topic/com.ibm.team.scm.doc/topics/c_scm_cli.html, "Aliases are unique to a sandbox. You cannot share them with other team members. You cannot list them. They are not persistent over long spans of time (any alias can be re-used to refer to another object after the set of unused aliases has been exhausted)."
I would recommend you use UUIDs everywhere, they are permanent and dependable. Every scm command you run "scm.exe --show-uuid y <command> <args>' and work with the UUIDs, they are always prepended with an underscore.
As to your specific problem, you don't put 'changeset' in the 'scm accept' command, you just provide the '-c' context and the alias so it knows to refer to a changeset. The error indicates that you are literally trying to accept something with an alias/UUID of 'changeset' and not the alias string you want.
For CLI use, I would heavily recommend against using aliases, they are nice shorthand if you are interactively using the CLI as an end-user, but for scripting they are not reliable.
First, I've seen (with RTC 4.0.3 at least) no aliases given when the number of returned objects from a 'scm' call is too large. Second, as the documentation states at https://jazz.net/help-dev/clm/topic/com.ibm.team.scm.doc/topics/c_scm_cli.html, "Aliases are unique to a sandbox. You cannot share them with other team members. You cannot list them. They are not persistent over long spans of time (any alias can be re-used to refer to another object after the set of unused aliases has been exhausted)."
I would recommend you use UUIDs everywhere, they are permanent and dependable. Every scm command you run "scm.exe --show-uuid y <command> <args>' and work with the UUIDs, they are always prepended with an underscore.
Comments
Thanks a lot, I remember clearly I tried with UUID, got same error, but I tried with UUID today, it works, it is so strange.
samuel wang,
FYI, I had to update my comment, I didn't read closely the command syntax you were using that the end. The command should work with an alias, it was just malformed.