2012-07-09 106 views
3

我在窑炉中创建了一个分支,并一直使用它在名为contactsmanager的文件夹中进行工作。TortoiseHG - 重命名文件夹 - >新建文件夹

现在虽然计划发生了变化,但是我没有将我的更改合并回主干,我想要的是将重命名为 contactsmanager文件夹以便联系。

我想龟对待老contactsmanager文件夹如删除或重命名,只是,平淡,缺少

我想从干线拉下来,并获得旧的联系人管理器,并与新(重命名)的联系人文件夹并排放置,当它看起来正确时,将此结构推送到干线(contactsmanager和contacts并排)

问题是,TortoiseHG似乎确定旧的contactsmanager文件夹被删除,如屏幕截图所示。我试着突出显示所有旧的联系人管理器,右键单击并选择“忘记”,但无济于事。

有没有办法在乌龟中实现这一点?解决方法非常明确:在trunk上复制旧的contactsmanager文件夹,推送我的更改,在trunk上重命名,手动恢复旧的联系人管理器,并且很好。

虽然我希望有一个直接的方法。

enter image description here

回答

2

让我看看我是否能澄清对不同的文件状态之间的转换的几件事情在水银:

  • 清洁→删除:hg removehg rename,或hg forget

  • 删除→清洁:hg revert

那么重命名,删除,忘记一个文件都会导致同样的事情:将文件定于去除在接下来的提交。当然,不同的命令将在工作副本有不同的影响:

  • hg remove:文件从你的工作副本

  • hg rename删除:文件被删除,但现在可以用另一个名称

    发现
  • hg forget:文件仍然在那里工作副本

hg forget命令在任何情况下都不会生成文件,这就是hg revert的用途。

所以,如果我已经正确理解了你,那么你想要hg revert整个contactsmanager文件夹将文件恢复到一个干净的状态(这可能是你的意思是“我想从干线拉下来,并得到旧的联系人管理员“)。 contacts文件夹中的文件对于Mercurial而言将保持未知 - 您可以照常添加它们。

如果您这样做,那么contactsmanagercontacts中的文件之间不会有任何“链接”,并且文件夹将按照您的要求并排存放。缺失的链接意味着你不会被要求将一个文件夹中所做的更改合并到另一个文件夹中。如果你确实想要这个,那么你可以将hg copycontactsmanager文件夹改为contents。副本将使Mercurial将contactsmanager中所做的更改合并到contacts中。有关更多信息,请参阅my answer about hg copy

+0

非常感谢你写这篇文章。到现在为止,我已经提到了俗套的解决方法(复制/粘贴/备份中继的联系人管理器推送到中继,在中继上重命名,创建新的联系人管理器并粘贴回去)。不漂亮,但它的工作。我会保留这个方便阅读几次。好东西。 – 2012-07-10 15:54:08