如何保持Mercurial存储库的小型化?
我的中央存储库存储在8GB U盘上。我不小心提交了一些大文件,因此存储库不再适合使用。有没有办法纠正这种情况?永远不要将代码存储库这样重要的东西存储在U盘上。这是一个很快释放所有代码的邀请!买一个有足够空间的外部硬盘,里面至少有两个独立的磁盘,可以镜像。将其永久存放在某个地方,不要随身携带。如果您需要从其他地方访问,请使用安全的internet连接远程访问您的硬盘。如果提交确实是意外的,您可以使用大文件回滚上次提交。 看 当然,如果你同时在上面做了其他重要的事情,这是行不通的。 另一种方法是使用删除包含大文件的整个分支如何保持Mercurial存储库的小型化?,mercurial,Mercurial,我的中央存储库存储在8GB U盘上。我不小心提交了一些大文件,因此存储库不再适合使用。有没有办法纠正这种情况?永远不要将代码存储库这样重要的东西存储在U盘上。这是一个很快释放所有代码的邀请!买一个有足够空间的外部硬盘,里面至少有两个独立的磁盘,可以镜像。将其永久存放在某个地方,不要随身携带。如果您需要从其他地方访问,请使用安全的internet连接远程访问您的硬盘。如果提交确实是意外的,您可以使用大文件回滚上次提交。 看 当然,如果你同时在上面做了其他重要的事情,这是行不通的。 另一种方法是使用
要小心,在执行这些操作之前,请确保您了解自己在做什么!首先在测试存储库或克隆上测试命令。我选择了catchyifyoutry的答案,因为他有您可能会使用的步骤,但这里有一个方便的列表 不过,首先是一个提醒。如果您已经将此存储库推到了半公开的位置,并且有人已经将其拉到了存储库中,那么下面的提示都不起作用。当他们下一次推拉时,您将以未修改的形式获得原始变更集。你唯一的办法就是与每个拥有克隆的人交谈,要求他们删除它并重新克隆。也就是说,在清单上: 删除您在事故中提交的文件的方法
- 如果您尚未提取或提交任何其他内容:
将作为一级撤消hg rollback
- 如果您愿意扔掉最后的N个修订版:
#示例:hg clone-r-N repo带有太多repo-with-N-less变更集
hg clone-r-2 big repo small repo
- 如果您的更改时间太长,其中任何一项都不正常:
hg convert--filemap myfilemap.txt太大repo new repo
myfilemap.txt
中包含:
exclude path/to/file/to/remove
注:
案例从技术上要求最小克隆,可能包括修订版tip-N,如果您有branchy repo。另外,需要Lclone-r
行(每个人头一行)来拉动其他非线性历史记录pull-r
- 使用
解决方案,将修改每个修改的变更集及其所有后代的hashcodehgconvert
exclude path/to/file/to/remove