我昨天刚开始使用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
答案 0 :(得分:7)
不,这不是一个错误。在mercurial中重命名导致在旧位置删除文件并在新位置创建它(保留引用,但用于合并和记录目的)。
所以至少现在你什么都不做。