Mercurial:重命名文件导致存储库中的内容重复?

时间:2011-05-08 01:05:21

标签: mercurial

我昨天刚开始使用Mercurial(我的编程经验不多)。我注意到,如果我重命名一个200MB的文件,理想情况下,存储库大小不应该改变,但我发现它增加了200MB。

这是Mercurial的错误/弱点吗?有可能在将来修复/改进吗?


更新

我刚刚在Windows 7 64bit上尝试过TortoiseGit 64位版本。重命名文件时,它不会创建重复的内容。但似乎一旦我重命名了一个文件,它的历史就丢失了。


更新2:

请参阅下面的tonfa评论。来自Mercurial wiki - GSoC Ideas 2010

  

项目创意

     

轻量级复制/重命名

     

(非常困难 - 一个成功的学生   将成为Mercurial的专家   存储格式和传输   协议)

     

目前没有复制和重命名   效率太高了。 Mercurial复制了   将源文件复制/重命名为新文件   初始修订目标文件   它的内部历史商店。对于   重命名,这是特别的   反直觉,重命名一个大   file通过文件增长存储   尺寸。如果Mercurial会更好   有一些方法可以参考   新文件的现有修订版,   同时保持倒退   兼容性和有界I / O.   保证检索修订。   有关讨论,请参阅issue883。   有一个旧的尝试mq   这位于here

     

联系方式:mpm,tonfa,cyanite

1 个答案:

答案 0 :(得分:7)

不,这不是一个错误。在mercurial中重命名导致在旧位置删除文件并在新位置创建它(保留引用,但用于合并和记录目的)。

所以至少现在你什么都不做。