1

我正在编写一个脚本,将我工作场所的项目从 ClearCase 转换为 Mercurial + Jira。我在移动文件时遇到问题。我正在使用“lsact -long”来更改活动中的文件。问题是,例如,当一个目录被重命名时,更改仅在其父目录中很明显,并且它与“描述”一起列出,如下所示:

添加了目录元素“new_name”。未编目的目录元素“old_name

问题是,它没有明确指定目录已移动,因此可能有人删除了旧目录并创建了新目录。

我如何知道文件是否在目录变更集中移动?

4

1 回答 1

1

对于任何向 Mercurial 或 Git 的迁移,我从不关心这些信息。

我只需从 ClearCase 中选择一个一致的修订(UCM 基线或完整标签),并将其添加到存储库(Hg 或 git)。
我在修改之后重复过程修改。

Hg 或 Git 会自动检测重命名(文件或目录)。

换句话说,任何由 VCS 记录的元数据都不会在 Git 或 Mercurial 中进行翻译。
关于重命名,这些 DVCS 将分析它们各自的修订并推断出重命名,如果您要求他们,导入所有内容后,并在使用您的存储库(git diff -M例如,或hg log --follow.

话虽如此,如果您想告诉 Hg 元素已移动(如“如何在 Mercurial 中重命名目录并继续跟踪所有文件更改”),您可以检查(如果尚未修剪)该事件的历史记录父目录,或“ new_name”之一:

cleartool lshist -long ...

这些事件可能记录了重命名或移动操作。

于 2013-01-15T19:04:30.763 回答