Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial:重命名文件会导致存储库中的内容重复?_Mercurial - Fatal编程技术网

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

Mercurial:重命名文件会导致存储库中的内容重复?,mercurial,Mercurial,我昨天才开始使用Mercurial(我没有太多编程经验)。我注意到,如果我重命名一个200MB的文件,理想情况下存储库的大小不应该改变,但我发现它增加了200MB 这是Mercurial的缺陷/弱点吗?将来有没有可能对其进行修复/改进 更新: 我刚刚在64位Windows 7上试用了64位版本的TortoiseGit。重命名文件时,它没有创建重复的内容。但似乎一旦我重命名了一个文件,它的历史就丢失了 更新2: 请参阅下面的评论。来自Mercurial wiki-: 项目理念 轻量级复制/重命

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

这是Mercurial的缺陷/弱点吗?将来有没有可能对其进行修复/改进


更新:

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


更新2:

请参阅下面的评论。来自Mercurial wiki-:

项目理念 轻量级复制/重命名 (非常难——一个成功的学生 将成为Mercurial的专家 存储格式和传输 协议)

当前不支持复制和重命名 效率太高了。Mercurial复制了 已将源文件复制/重命名为新文件 中目标文件的初始修订版 它的内部历史存储。对于 重命名,这是特别重要的 与直觉相反,如重命名大型 文件按文件的大小增加存储 尺寸。如果Mercurial 有某种方式来指代 新文件中的现有版本, 在向后保留的同时 兼容性和有界I/O 检索修订的保证。 请参阅以进行讨论。 有一个mq来自于对 这是我的位置

联系人:mpm、tonfa、蓝晶石


不,它不是虫子。在mercurial中重命名会导致在旧位置删除文件并在新位置创建文件(但为了合并和日志记录的目的保留引用)


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

谢谢你的回复。因此,每次我重命名文件或文件夹时,都会在存储库中创建重复的内容。这对我来说是个坏消息,因为我是那种喜欢重命名资源文件的人。我会试试Git。@caveman:如果你重命名源代码,这不是什么大问题,但如果你保留200MB的二进制文件…:-斯卡夫曼:只需使用Mercurial重命名,暂时忽略空间影响——当实现轻量拷贝时,新的克隆将再次变小。@Martin Geisler:这是一个好消息!我从Mercurial切换到Git的唯一原因是重命名问题。现在我切换回Mercurial:)@caveman:不,这项功能没有计划好(它会破坏其他优化以最小化磁盘访问)。这项功能正在进行中,请在Mercurial wiki和邮件列表中搜索lwcopy。