我知道在 Mercurial 中,“历史是神圣的”。

但是,假设某人意外提交了不应执行的操作,例如包含密码或其他内容的设置文件。甚至可以说有人花了一段时间才意识到它,所以它一直徘徊了几次提交。显然,发现者然后从存储库中删除了敏感数据。

有什么方法可以从提交历史记录中永久擦除该文件或敏感数据,就像从不存在一样?还是那个敏感数据将永远永远是 repo 协议(protocol)的永久组成部分?

最佳答案

有几种方法可以完成此操作。所有这些都需要在引入更改后克隆存储库或从存储库中提取更改集的每个人的合作。

使用哪种方法取决于提交的数据的确切性质及其在历史记录中的位置。所有这些都需要使用Mercurial扩展,而核心Mercurial无法完成。幸运的是,默认情况下,Mercurial附带了所有必需的扩展,只需启用它们即可。

我不会在这里详细介绍这些方法,因为在这是一个重复的问题中,有几个答案给出了不同的方法。我只是想明确一点,即该问题上可接受的答案在技术上是正确的,但没有用。实际上是可能的。

10-07 18:57
查看更多