如何从Mercurial中的整个项目历史记录中删除所有Java类文件?

时间:2010-08-30 10:00:05

标签: mercurial

当我开始我的Mercurial项目时,我忘了排除target/classes目录下的所有内容,例如:

target/classes/com/mypackage/MyClass.class

现在,当我执行hg update时,这些二进制文件会导致冲突。

是否有一个命令允许我从整个项目历史中删除所有这些文件?

或者,如果没有,是否有一个命令允许我一次删除一个文件?

3 个答案:

答案 0 :(得分:3)

如果删除有问题的文件,请执行hg addremove,然后将从存储库中删除这些文件。然而,它们仍然会在历史中,但这真的是一个问题吗?

答案 1 :(得分:3)

如果您只想删除上一版本中的文件,请从磁盘中删除文件并使用hg addremovehg remove --after target/classes/com/mypackage/*.class通知Mercurial您的删除。

如果要永久删除整个历史记录中的所有类文件,请使用hg convert--filemap选项重写存储库并删除所有修订版中的文件。但是,此解决方案会改变修订ID。在多用户环境中,它可能会导致一些问题,因为它会有效地创建新的存储库。

答案 2 :(得分:2)

使用hg remove --after target/classes/com/mypackage/*.class。 (--after将避免删除磁盘文件。)