【问题标题】:preserving history when using mercurial ontop of clearcase在 clearcase 上使用 mercurial 时保留历史记录
【发布时间】:2009-07-18 00:04:26
【问题描述】:

我在 ClearCase 商店工作,CC 在整合团队工作方面做得很好,尽管我们的代码审查流程阻止我使用它来跟踪我的日常更改。在我的 CC 视图之上创建一个 hg 存储库效果非常好。我可以跟踪我的更改并轻松在文件服务器上进行备份,为人们生成差异等。

这一切都很好,直到我转移到一个新的 CC 视图并且不得不把我的历史抛在脑后。我很想能够?拉?我以前的历史记录,并将新视图中的所有不同之处显示为最新的更改集。

【问题讨论】:

    标签: version-control mercurial clearcase dvcs


    【解决方案1】:

    我从未使用过 ClearCase,所以我不确定 CC 视图是什么,但这里有一种适用于供应商丢弃的通用技术:检查上游 (CC) 版本,例如修订0,在 hg 分支 vendor 或任何你想要的。改回默认分支并破解。然后当你想移动到最新的上游版本时,再次检查你的 hg repo 中的vendor,用新的上游替换工作目录,运行hg addremove(可能使用--similarity 选项来检测重命名),提交,并与您当前的提示合并,然后切换回默认分支。

    【讨论】:

      【解决方案2】:

      要完成brendan's answer,由于每个 ClearCase 视图将位于它们自己的路径(对于动态视图)或本地目录(对于快照视图),您必须:

      • 移动您的汞存储库
      • 签出 hg 存储库中的新分支,以隔离新 CC 视图的新配置规范引入的更改(如果您使用 UCM,您可以将 CC Stream 的名称镜像到 hg 分支中,例如实例)
      • Syncing the CC view with your Mercurial Repository

      【讨论】:

      • 您能否更具体地介绍第一步?
      • 移动您的 hg 存储库:这个想法不是直接同步位于您的第一个 CC 视图中的原始 hg 存储库:它应该被克隆到任何 CC 视图之外,设置为右分支,然后从那里创建一个新分支,以隔离新 CC 视图引入的文件。然后,您可以将该新视图与外部存储库同步。最后,您可以将该外部存储库克隆到新的 CC 视图中。
      • “设置到正确的分支”:我的意思是第一个 CC 视图的分支,您首先在第一个视图的顶部创建了 hg 存储库。这样,当您将该 hg 存储库与新内容同步时,您将在同一个 hg 存储库中拥有以前的历史记录以及新的 CC 视图内容。
      【解决方案3】:

      我们在 ClearCase 静态视图中使用 Git,原因与您描述的几乎相同 - 更精细的控制。

      在 CC 中,当我们开始处理较新的(标记的)版本并且配置规范发生适当更改时,Git 会将其作为常规变更集进行选择。

      之所以如此神奇,是因为 Git 对配置规范一无所知,而 CC 对 .git 目录一无所知。当配置规范更改时,它会重新加载任何已更改但不触及 .git 目录的文件,因此 Git 仍然可以看到 repo。

      我对 Mercurial 没有任何经验,但我只是启动它并添加了一些目录和文件,它似乎以相同的方式工作。

      【讨论】:

      • 我们使用它还有一些更奇怪的原因,最值得注意的是整个团队共享相同的静态视图 - WTF。无论如何。
      猜你喜欢
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2011-04-22
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多