I在本地实现了(未推)很多文件(包括二进制文件删除和添加.)而现在,当我试图推动它需要很长的时间。实际上我把我当地的回购记录搞砸了。
将来我怎样才能避免这个错误?我是否可以将一组局部版本1->2->3->4 -转换为1->2,其中2是本地克隆的最终版本?
编辑:因为我很匆忙,所以我从零开始了一个新的远程回购,第4版。在未来,我将使用标记的答案,因为它看起来更容易,但我会挖掘其他的解决方案,以了解真相。谢谢你的支持。
发布于 2010-04-24 15:11:16
汞的历史是不变的,你不能删除使用正常的工具。但是,您可以在没有这些文件的情况下创建一个新的回购程序:
$ hg clone -r 1 repo-with-too-much new-repo这只需要修改零和一个从旧回购,并将他们纳入一个新的回购。现在,将第四版中的文件复制到新的回购和提交中。
这就消除了这些间隙变化,但你在野外的任何回购仍然有,所以当你pull你会得到他们回来。
一般来说,一旦你推动了一个变更集,它就存在了,除非你能让每个拥有克隆的人删除它并重新克隆,否则你就倒霉了。
发布于 2010-04-27 15:40:11
从你的问题上还不清楚这些变化是否被推动了。如果他们仍然是本地的,你可以或多或少地摆脱他们。转换是一种选择。您还可以使用MQ (mercurial队列)。有关详细说明,请参阅 wiki文章。它建议MQ是最简单的方法。
为了防止这种错误,您可能应该添加一个钩子来拒绝‘坏’提交,因为您可以编程地描述它们;)
https://stackoverflow.com/questions/2702381
复制相似问题