我正在使用svn命令行,并且我想忽略一些在我的工作副本中进行更新的文件。我试过svn proset svn:ignore -F file.txt .,它显示"property 'svn:ignore' set on '.'",但当我更新它时,所有的文件都会更新。然而,它在tortoisesvn上工作得很好,但我需要在linux机器上使用它,因此需要一个命令行选项来实现它。
我们的构建系统生成大量分散在源码树中的文件。
这些文件在运行svn status时显示
在下面的示例中,所有文件都带有'?‘thirdparty目录中的所有文件都是由构建系统生成的。
例如:
svn status
M common/db/unit_test/src/db_payload_builder_test_suite.cpp
? common/db/unit_test/Makefile
M common/lib/osal/variant/linux/public_inc/osal_specific_msgq.hpp
M common
二进制文件(在Linux下)没有扩展名,所以我不能使用模式来排除它们。因此,当我使用SVN add添加一个目录时,我会得到如下所示的结果
$ svn add recursion_vector/
A recursion_vector
A recursion_vector/rec_vec.cxx
A recursion_vector/rec_vec.h
A (bin) recursion_vector/rec_vec
这里的rec_vec是我想要排除的可执行文件。显然,SVN将其识别为二进制。现在我可以告诉Subversion忽略所有二进制文件了
我有以下(Windows命令) Subversion脚本:
svn propset svn:ignore --recursive -F .svnignore .
echo Ignoring files with the following filename patterns:
svn propget svn:ignore
svn copy %sourceUrl% %destUrl%
这是我在运行它时得到的:
property 'svn:ignore' set on '.'
property 'svn:ignore' set on '1
我有一个我不想忽略的文件夹。
当我使用svn status时,我得到以下答案:
? Node.js Back and BBD scripts/node_modules
但是,当我使用命令svn propedit svn:ignore .并添加:
Node.js Back and BBD scripts/node_modules
svn状态给我提供了相同的消息。