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
Version control 清理版本控制中未使用的旧大型文件_Version Control_Mercurial - Fatal编程技术网

Version control 清理版本控制中未使用的旧大型文件

Version control 清理版本控制中未使用的旧大型文件,version-control,mercurial,Version Control,Mercurial,对于我当前的项目,我正在使用Mercurial并将其托管在Bitbucket上 这是我真正正确使用版本控制的第一个项目,所以我在开始时犯了一些错误。其中之一是我将项目使用的所有(未压缩的)声音文件与代码一起存储在存储库中 因此,现在,即使我不再将这些文件存储在那里,第一次从服务器中提取仍然需要相当长的时间(我猜存储库会保存所有这些文件,以便我可以在需要时恢复这些文件?),而且项目占用的空间比它应该占用的更多 这不是一个大问题,但我想知道现在有什么好办法来解决它。此外,这种对存储库的“破坏性”编辑

对于我当前的项目,我正在使用Mercurial并将其托管在Bitbucket上

这是我真正正确使用版本控制的第一个项目,所以我在开始时犯了一些错误。其中之一是我将项目使用的所有(未压缩的)声音文件与代码一起存储在存储库中

因此,现在,即使我不再将这些文件存储在那里,第一次从服务器中提取仍然需要相当长的时间(我猜存储库会保存所有这些文件,以便我可以在需要时恢复这些文件?),而且项目占用的空间比它应该占用的更多

这不是一个大问题,但我想知道现在有什么好办法来解决它。此外,这种对存储库的“破坏性”编辑是否会影响到与其他fork的“兼容性”(即在fork之间推动更改时会产生问题)

谢谢!如果需要更多的细节,请在评论中询问

与之类似/相关:

您可以使用and命令重新生成回购协议,并在执行此操作时删除特定文件。但是,正如您正确猜测的那样,这种更改确实会创建新的变更集哈希,因此会破坏与其他fork的“兼容性”

此外,这种对存储库的“破坏性”编辑会影响与其他fork的“兼容性”吗


是的,会的。你的想法很好!它将有效地成为一个新的存储库。

存储库完整性是一把双刃剑,在这种情况下,我们将不得不忍受这样的错误。感谢您的回答。现在,从我对mercurial使用哈希的理解来看,如果我在repo 1和它的fork 2中(fork发生在X的后代的变更集中)执行相同的精确操作(比如从变更集X中删除某个文件A),它们不应该以相同的方式重新格式化(从而继续兼容)吗?(我会在我的回购协议的一些副本上测试这一点,看看是否可行)否,因为对父变更集的引用也包括在内,如果父变更集不相同,这会导致哈希更改。但我建议我以相同的方式编辑父变更集。让我们这样说(字母是变更集)。主回购:A->B->C->D->E;叉:A->B->C->F->G;现在,我开始以完全相同的方式在两个repo中执行转换操作,这些操作将影响从变更集B开始的repo(例如,我排除了在B中添加的文件,该文件在main和fork中都没有更改)。我现在应该得到新的散列,但主回购协议和fork之间的散列相同,不是吗?我稍后会在一些虚拟回购上尝试一下,看看会发生什么:)是的,我知道上述情况非常特殊,而且我知道,除此之外,它很可能不起作用:)但这个案例实际上非常适用于我的问题,因为我有一些文件通过回购协议保持不变,我只希望它们永久退出系统。