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,但我认为这是不可能的。
在这种情况下,您能否提供一些建议?
由于
答案 0 :(得分:7)
首先,您可以向.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
来有选择地添加文件,因为随着项目的发展,它包含的文件应该相对快速地稳定下来。