Hg:如何在不丢失历史的情况下移动文件(到子文件夹)?

Ale*_* P. 48 mercurial tortoisehg

如何在不丢失历史的情况下移动文件(到子文件夹)?

在我的Mercurial存储库(我的意思是包含.hg的文件夹)中,我有MyProject /文件夹和所有项目文件.现在我需要在里面创建src /文件夹并将所有文件移动到它(从MyProject /MyProject/src /).如何在不丢失历史的情况下做到这一点?

mo.*_*mo. 48

既然你有一个"tortoisehg"标签,我想我会用GUI解释我这样做的方式.

通常,我只是在我的IDE或Windows资源管理器中重命名/移动文件,然后当我去提交时,THG将显示一堆(?)未知文件和(R)删除文件.只需右键单击任何文件,然后选择"检测重命名...",然后单击"查找重命名"按钮.

您可能需要调整"最小相似度"滑块,直到获得所需的所有文件,并且只获得所需的文件,但这通常非常简单.


Fre*_*Dog 38

hg mv 
Run Code Online (Sandbox Code Playgroud)

做了正确的事,但hg log除非你给它-f选项,否则不会列出移动后的条目.有关详细信息,请参阅此问题

为什么'hg mv'(mercurial)默认情况下不会移动文件的历史记录?

执行此操作后,您可能希望将-f选项添加到hg log repo的hgrc文件中.

.hg/hgrc

[defaults] 
log = -f 
Run Code Online (Sandbox Code Playgroud)

  • 哦,看起来像**hg mv MyProject/*MyProject/src/**有效. (4认同)

小智 10

在安装了Tortoise HG的Windows中,有一个Windows shell扩展可以非常好地处理这个问题.

在Windows资源管理器中,只需右键单击并将要移动的文件拖动到目标文件夹中.然后会出现一个弹出窗口,为您提供以下选择:

HG在此处移动版本化的项目

HG复制版本化项目

  • 这对我不起作用。它移动/复制文件,但历史记录丢失。 (2认同)

Ste*_*sku 5

使用hg mv移动你的文件,然后使用hg log -f(如下)可查看历史记录,包括重命名.