我试图使用mercurial文件集来添加目录树中的所有文件,不包括非常大的文件和任何二进制文件。从善变文档恶癖,这个命令应该这样做:添加文件时为什么不能使用mercurial文件集?
hg init
hg add 'set: size("<1M") and not binary()'
然而,这返回0的状态码,并没有添加任何东西到我的新的,空的回购协议。我试过了'set:not binary()',那也不管用。 令人沮丧的是,虽然我可以谷歌的mercurial文件集,并找到很多的例子,我找不到任何东西,以帮助解决它不工作时! 我没有.hgignore文件,它是一个新鲜的空回购。 Mercurial 4.2.2。 我正在测试的目录中有几个人工创建的文件用于测试。在我的真实使用案例中,我从客户端继承了多吉字节的各种源代码和二进制文件,并且我希望在我开始修复它们的问题之前将所有源代码转换为mercurial,因此需要排除二进制文件和大型文件,否则呛mercurial。
这里是我的小测试脚本:
#!/bin/sh -ex
dd if=/dev/urandom of=binary_1k bs=1 count=1024
dd if=/dev/urandom of=binary_2M bs=1 count=2097152
echo "This. Is, a SMALL text file." > text_small
hexdump binary_1k > text_1k
hexdump binary_2M > text_2M
ls -lh
file binary_1k
file binary_2M
file text_1k
file text_2M
hg init
hg add 'set: size("<1M") and not binary()'
hg status -a
hg add 'set: not binary()'
hg status -a
hg add 'set: size("<1M")'
hg status -a
在本月底,各status命令报告在回购没有文件,并添加命令报告没有错误。