从hg存储库中删除二进制文件

时间:2012-02-23 07:30:45

标签: version-control mercurial binaryfiles

Mercurial是否可以删除具有certaain扩展名的所有文件?我做了一个addremove,然后我的所有二进制.pyc都被版本化了,现在我在版本控制时得到了这个限制器:

tool kdiff3 can't handle binary
tool docdiff can't handle binary
 no tool found to merge bnano-www/wtforms/widgets.pyc
keep (l)ocal or take (o)ther? o
19 files updated, 67 files merged, 0 files removed, 0 files unresolved

C:\Users\developer\bnano\bnano-www>

我真的不知道这意味着什么,除了我可以按o代替其他人继续我的工作。现在我想清理我的存储库,最佳的是能够在没有添加二进制文件的情况下执行addremove,但我认为这是不可能的。

在这种情况下,您能否提供一些建议?

由于

3 个答案:

答案 0 :(得分:7)

HgIgnore

首先,您可以向.hgignore文件添加一些规则,告诉Mercurial您要忽略某些文件。然后,hg addremove不会自动添加它们,并且它们不会在未跟踪的命令输出中显示(即hg status)。

删除文件

要删除文件,可以使用hg remove myfile,例如,如果所有pyc文件都在同一目录中,则可以执行hg remove *.pyc然后提交更改。< / p>

如果您的文件分散在各种存储库中,hg remove -I *.pyc **/*之类的内容应删除所有目录中的所有.pyc文件。

排除模式

仅供参考,最好在.hgignore文件中添加不需要的文件,您也可以通过addremove告诉hg addremove -X *.pyc忽略某些文件。这将添加/删除除pyc扩展名之外的所有文件。

您可以使用help找到有关特定mercurial命令的帮助。例如,hg help addremove。总的来说,一切都得到了很好的解释!

教程

为了更深入地探索各种Mercurial概念,我推荐这个优秀的教程:http://hginit.com

答案 1 :(得分:3)

要从存储库中删除所有二进制文件,您可以使用Mercurial filesets

hg remove "set:binary()"

正如其他海报所提到的,在.hgignore文件中添加不需要的扩展名是个好主意。

答案 2 :(得分:1)

您应该可以像删除任何其他文件hg remove *.pyc一样删除它们。您可能希望将.pyc添加到.hgignore文件中,以防止它们在您使用addremove时返回。

一般情况下,您应该使用hg add来有选择地添加文件,因为随着项目的发展,它包含的文件应该相对快速地稳定下来。