scm.exe deliver
During the build process a snapshot is created but isnt delivered to the stream. I added a step to call the scm.exe with the deliver command. Im getting an error:
SCMTools: D:\Program Files\IBM\TeamConcert\scmtools\eclipse\scm.exe Delivering changes: Workspaces: (1001) "bld Stream Workspace" --> (1003) " Stream" Problem running 'deliver': Cannot deliver because there are one or more items that are not checked in. Check in the changes or rerun with --overwrite-uncommitted. Result: 34 The only thing in that workspace is the snapshot/baseline in the outgoing folder so there should be no need to do a checkin. Here is the command I call (dont pay attention to the syntax) ${scmtools}\scm.exe deliver r ${repositoryAddress} u ${userId} P ${password} s ${workspaceId} -t" IPI Stream" If Im trying to deliver whats in the workspace why would I have to specifiy a target? Shouldnt it default to the flow target and only change if I do happen to pass in a target? Or does the snapshot not get created until after the whole build process ends? If that is the case it would be very unfortunate since there is no way through the command line to create a snapshot/baseline during the build process. |
4 answers
Specifying a target allows you to deliver to a target that is not the current target.
It seems that your build may be creating changes and the command line is preventing you from delivering without checking in the changes. You can run with the --overwrite-uncommitted option as the error message suggests. Have you looked at post-build deliver? You can specify in the build definition to deliver your changes to a specified target. |
Specifying a target allows you to deliver to a target that is not the current target. I can't use the post-deliver step. I'm doing a build in Stream A and want to deliver the snapshot/baseline created from that automation process back to Stream A. If I use the post-deliver step to the same stream that I pulled code from then the process will deliver 100+ baselines to the stream. It must be stuck in a loop. From what I understand the post-deliver step is used to deliver to an integration stream. We only have one stream that everyone delivers to. After every automated build there is a baseline sitting in the outgoing folder. All I want is to deliver this baseline to the stream. |
I thought I would follow up with this thread.
I was able to finally get it to deliver the baseline created during the scheduled build process. Here was the command: {scmtools}\scm.exe deliver -r ${repositoryAddress} -u ${userId} -P ${password} -o -v -s ${workspaceId} -t "Stream Not sure wha the -o does but it did the trick. |
The -o option allows the operation to continue even though there were unresovled changes. If the unresovled files were generated by a build process then you can safely use the -o option else you may want to check if there are really any unresolved changes (running the 'lscm status' subcommand) that you do not want to be overwritten.
I thought I would follow up with this thread. |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.