1

在我们的工作中,我们被迫使用 Clearcase UCM 作为我们的中央存储库(特别是用于标记/基线、构建和代码审查),但我们的团队希望使用 Git 作为我们真正的 SCM 系统。

我们想要实现的本质上是一个抓取服务,它将提交推送到我们的中央 Git 存储库,并将它们推送到一个 Clearcase VOB,就开发团队而言,它是只读的,包括重要信息,例如作为评论和用户名(确切的日期/时间匹配并不重要,但让用户正确)。

我们的集中式 Git 服务器已配置(使用出色的 scm-manager)接受 Windows 域用户和密码,我们的 Clearcase 服务器使用 Windows 域帐户,但我不确定爬虫服务如何“冒充”正确的用户,所以这些信息在 Clearcase 中正确复制。
我认为该chevent命令可能有一些承诺,但这只能访问评论。

一旦 Clearcase 事件记录在数据库中,有什么方法可以修改它的详细信息,特别是用户名?还是有更好的方法来做到这一点?
同样,我们不需要双向桥——就代码提交而言,所有对 Clearcase VOB 的访问都将通过刮板。

4

1 回答 1

1

ClearCase 是逐个文件的 SCM,而不是基于修订的 SCM。
(有关ClearCase 和 git 之间更详细的比较,请参阅“每个开发人员都应该了解的基本 ClearCase 概念是什么? ”)

这意味着,对于每个 git 提交,您需要:

请注意,这cleartool protect会影响整个“元素”(文件或目录),而不仅仅是一个版本,因此您不能以这种方式记录用户 ID:下一次导入将用导入内容的新提交者的 ID 覆盖该 ID。
另外,您不能更改初始创建者(请参阅“更改元素的原始创建者的名称”)

这意味着您应该在属性中记录该信息(作者和创建者 git id) :
请参阅cleartool mkattr.


如果我确实想准确地将 Git 用户反映为新版本文件的“创建者”,这是否意味着我需要一种以clearfsimport该用户身份运行的方法——模拟他们?

是的:对于每个提交,您需要clearfsimport“作为”(runas在 Windows 中,如本线程中所述)使用,以便 ClearCase 正确设置创建者(如果这是一个新元素)或版本作者(如果这个是现有版本的更新)。

我首先没有提到这种可能性的原因是我无权访问另一个用户的凭据,我无法切换到每个clearfsimport.

其他导入工具(CVS、PCVS、RCS、SCCS、SSafe)简单:

  • 完全忽略该创建者/作者信息。
  • 为特定于工具的信息添加自己的属性(如促销组“ PVCS_GROUP”或RCS_REVISION.

每次,您都会发现类似于以下内容的限制:

clearexport_sccs 忽略SCCS 文件中与版本树结构无关的信息;这包括标志、ID 关键字、用户列表和修改请求编号


我们大多数需要 Clearcase 历史记录的其他系统都使用创建者来反映谁进行了该更改

这意味着您的其他系统可以依赖用户 ID 版本,除非它是用于导入的版本(在这种情况下,他们会查阅记录导入数据的特殊属性)

于 2013-07-26T05:29:06.183 回答