2

我们最近从 Harvest 转移到了 Rational Team Concert (RTC)。

我们有很多抱怨,但我们不要纠缠于它们。

需要知道如何执行以下操作:

在我的工作区C:\ws中,我有以下流/项目:

C:\ws\dev1
C:\ws\dev2

在构建部署脚本包(Oracle、dotNet)时,我想做的是检查我们在项目过程中所做的所有更改是否都包含在包中。

为此,我们有一个反映当前生产的流。

我想简单地查询 RTC 存储库并提出问题:

“列出所有与C:\WS\dev1生产流相比不同的文件”。

我找不到任何SCM.exe显示如何执行此操作的命令示例。

我发现的唯一方法是将生产流“加载”到我的本地工作区,例如“ ”,然后在“ ”和“ ”C:\ws\prod之间进行比较。C:\ws\dev1C:\ws\prod

这个问题是因为 RTC 加载不保留实际的存储库签入时间戳,我必须立即开始过滤掉这些。

必须有一种方法可以使用 SCM 轻松完成此操作。

图形 Eclipse " compare"我展示了差异,但我什至无法将该列表复制/粘贴到文本文件中,因为它都是图形的。

4

2 回答 2

3

命令行将允许您将存储库工作区与流进行比较。如果您已签入已加载到磁盘上的更改,则可以将存储库工作区与生产流进行比较。

lscm compare ws {workspace id} s {stream id} -r {repository_URI} -I f

-I f选项将列出文件差异并且列出文件差异。

如果内容尚未签入,您可以设置流目标并使用status命令。未签入的文件将显示在输出中。您可以使用-C扩展更改集的选项来查看文件。但是,您必须解析输出,因为没有排除该信息的选项。

如果仍然不支持,您可以在 jazz.net 上打开一个工作项。

于 2013-02-20T19:17:20.670 回答
1

这种比较的想法是暂时更改 dev1 repo 工作区的流目标,将其指向 prod 流。

这将允许您获取您在 dev1 中没有的 prod 更改集,或者列出 dev1 中尚未在 prod 中的更改集。

文章“ Rational Team Concert 中的 Jazz SCM 命令行入门”说明了这种操作。
(示例是指向另一个 Workspace,但您也可以直接指向另一个 Stream)

~/sample$ lscm change-target workspace Workspace1 Workspace2
Target changed.

~/sample$ lscm status
Workspace: (4819) "Workspace1" <-> (4828) "Workspace2"
  Component: (4818) "Comp1" <-> (4828) "Workspace2"
    Baseline: (4825) 1 "Initial Baseline"
    Incoming:
      Change sets:
        (4935)  ---$ userB  <No comment>

但是您仍然需要列出这些更改集的内容并查找公共文件:那些是具有不同内容的文件(更不用说仅存在于 dev1 或 prod 中的文件,或已删除的文件)

简而言之,似乎没有一种简单的方法可以在命令行中执行此操作。

于 2013-02-16T13:09:51.903 回答