列出接触元素的每个版本的所有 ClearCase 用户

List all ClearCase users that touched every version of an element

我需要为元素的版本树中列出的每个版本获取用户名列表,然后对目录中的每个元素重复。

到目前为止,我已经得出以下结论:

> cd M:\path\to\folder
> cleartool find . -version "created_since(01-January-1979.00:00:00)" -exec "cleartool describe -fmt ""%Lu\t%Fu\t%n\n"" %CLEARCASE_XPN%"

我选择了一个非常旧的日期,认为我们的 VOB 比那个日期更早。

这为我提供了元素的每个版本的相同信息,因为它查看的是元素所有者,而不是贡献特定版本的个人。

我正在使用以下页面作为参考:

这可能是 RTFM 的一个简单案例。感谢任何帮助。

经过仔细检查,我上面发布的命令似乎已经足够了。我看到一堆相同的用户名,并认为它们都是相同的,但事实并非如此。我看到同一元素的不同版本有不同的用户名,这正是我最初想要的。

您需要检查 %n(在 -fmt_case directive 中使用)returns 版本名称的元素名称:

  • 如果是元素名称(没有任何extended path information, as in @@/main/.../x), then it would be normal for the cleartool describe到return总是相同的信息。
  • 如果它是扩展路径,正如我对 %CLEARCASE_XPN% 所期望的那样,那么 %u 应该是与事件(版本)关联的用户,而不是“元素所有者” )

    %u
    

Login name of the user associated with the event.

小提示,我总是喜欢在 %CLEARCASE_XPN% 周围使用双引号,以防路径文件名中包含 space。

-exec "cleartool describe -fmt ""%Lu\t%Fu\t%n\n"" \"%CLEARCASE_XPN%\""

如果您在多站点 VOB 上工作,请不要忘记在另一个站点上创建的对象的所有者将是您站点上的 VOB 所有者。因此,如果对象仅在远程站点创建和修改,则其所有树和版本都将归 VOB 所有者所有。 当然,我假设您处于副本同步身份的非保留模式(有关模式信息,请参阅 Changing preservation mode)。在大多数情况下,您不希望通过复制来保留身份,因为每个站点都有自己的一组用户。