Mercurial:重命名,然后使用旧名称创建新文件

时间:2011-08-13 02:54:19

标签: mercurial replace rename

我正在使用TortoiseHg。我有一个文件A.我使用重命名工具将其重命名为B.所有看起来都很好。现在我想创建一个名为A的新文件。当我创建一个具有该名称的文件并将其添加到repo时,它显示了我的新文件与旧A(现在重命名为B)的差异。

如何将A重命名为B并且能够添加一个新的A,你知道,新的,而不是Hg认为我正在修改旧的,现在不存在的A?

编辑:事实上,我最初做的是正确的事情,我只是没有正确地进行重命名。 (我已经提交,但只提交了新重命名的文件,而不是现在不存在的旧文件。)

2 个答案:

答案 0 :(得分:3)

您需要在重命名后提交,然后创建具有相同名称的新文件。

$ hg mv A B
$ hg commit -m "moving A→B"
$ touch A
$ hg add A
$ hg commit -m "adding new A"

答案 1 :(得分:3)

假设您的存储库中有文件a.txt。要将其重命名为b.txt并使用TortoiseHg 2.x添加名为a.txt的其他文件,请执行以下操作:

  1. 右键点击a.txt。在上下文菜单中,单击 TortoiseHg > 重命名文件
  2. 重命名对话框中,在目标文本框中输入b.txt。点击重命名
  3. 右键单击存储库文件夹。在上下文菜单中,单击 Hg Commit
  4. 提交窗口中,确保选中了两个文件,添加了b.txt并删除了a.txt。输入提交说明,然后单击提交。关闭提交窗口。
  5. 创建名为a.txt的新文件。右键单击它。在上下文菜单中,单击 TortoiseHg > 添加文件
  6. 添加窗口中,确保选中a.txt。点击添加
  7. 右键单击存储库文件夹。在上下文菜单中,单击 Hg Commit
  8. 提交窗口中,选中a.txt。输入提交说明,然后单击提交。关闭提交窗口。
  9. 现在您有一个不同的a.txt,其中包含一个新的历史记录,而b.txt会记住它曾经被命名为a.txt

    P.S。这与Vaibhav Bajpai在答案中发布的步骤完全相同。如果您在处理表达为hg命令的步骤时遇到问题,可能会遇到困难。