Hg:如何移动文件(到子文件夹)而不会丢失历史?
如何移动文件(到子文件夹),而不会丢失他们的历史?
在我的Mercurial存储库(我的意思是在其中的.hg文件夹)我有MyProject /文件夹与所有项目文件。 现在我需要在里面创buildsrc /文件夹,并将所有文件移动到它(从MyProject /到MyProject / src / )。 我怎样才能做到而不会失去所有的历史?
hg mv
没有做正确的事情,但hg log
不会列出移动过去的条目,除非你给它的-f
选项。 看到这个问题的更多信息
为什么'hg mv'(mercurial)默认不移动文件的历史logging?
在你这样做之后,你可能想要把-g选项添加到hg log
到hgrc的repo文件中。
.hg/hgrc [defaults] log = -f
既然你有一个“tortoisehg”标签,我想我会解释我使用GUI做这个的方式。
通常,我只是重命名/移动文件在我的IDE,或从Windows资源pipe理器,然后当我去提交,THG将显示一堆(?)未知文件和(R)删除的文件。 只需右键单击任何文件,然后select“检测重命名…”,然后单击“查找重命名”button。
您可能需要调整“Min Similarity”(最小相似度)滑块,直到获得所需的所有文件以及所需的文件,但通常非常简单。
在安装了Tortoise HG的Windows中,有一个Windowsshell扩展可以很好地处理这个问题。
在Windows资源pipe理器中,只需右键单击并拖动想要移动到目标文件夹的文件即可。 然后你会看到一个popup窗口,给你这些select:
HG在此处移动版本化的项目
HG在此处复制版本化的项目
使用hg mv
移动文件,然后使用hg log -f
(follow)查看包括重命名的历史logging。