我在 ClearCase 商店工作,CC 很好地整合了团队的工作,尽管我们的代码审查流程阻止我使用它来跟踪我的日常更改。在我的 CC 视图之上创建一个 hg 存储库效果非常好。我可以跟踪我的更改并轻松地在文件服务器上进行备份,为人们生成差异等。
这一切都很好,直到我转向新的 CC 视图并且不得不将我的历史抛在脑后。我很想能够?拉?我以前的历史记录,并且新视图中的所有不同之处都显示为最新的更改集。
我在 ClearCase 商店工作,CC 很好地整合了团队的工作,尽管我们的代码审查流程阻止我使用它来跟踪我的日常更改。在我的 CC 视图之上创建一个 hg 存储库效果非常好。我可以跟踪我的更改并轻松地在文件服务器上进行备份,为人们生成差异等。
这一切都很好,直到我转向新的 CC 视图并且不得不将我的历史抛在脑后。我很想能够?拉?我以前的历史记录,并且新视图中的所有不同之处都显示为最新的更改集。
我从来没有使用过 ClearCase,所以我不确定 CC 视图是什么,但是这里有一个适用于供应商丢弃的通用技术:检查上游 (CC) 版本,例如,修订版 0,在hg 分支vendor
或任何你想要的。改回默认分支并破解。然后当你想移动到最新的上游版本时,vendor
再次签出你的 hg repo,用新的上游替换工作目录,运行hg addremove
(可能带有--similarity
检测重命名的选项),提交,并与你当前的提示合并,然后切换回默认分支。
要完成布伦丹的回答,由于每个 ClearCase 视图都将位于它们自己的路径(对于动态视图)或本地目录(对于快照视图),您必须:
我们在 ClearCase 静态视图中使用 Git,原因与您描述的几乎相同 - 更精细的控制。
在 CC 中,当我们开始处理更新的(标记的)版本并且配置规范发生适当的更改时,Git 会将其作为常规变更集进行选择。
之所以如此神奇,是因为 Git 对配置规范一无所知,而 CC 对 .git 目录一无所知。当配置规范更改时,它会重新加载任何已更改的文件,但不会触及 .git 目录,因此 Git 仍然可以看到存储库。
我对 Mercurial 没有任何经验,但我只是启动它并添加了一些目录和文件,它似乎以相同的方式工作。