使用svn忽略多个特定文件

mar*_*ark 4 svn

我们的构建系统生成许多散布在源树周围的文件.

这些文件在运行时显示 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/lib/enb/public_inc/enb_service.h
?       thirdparty/lib/curl/public_inc_arm
?       thirdparty/lib/curl/public_inc_x86
?       thirdparty/lib/curl/originals/config.log
?       thirdparty/lib/curl/originals/libcurl.pc
?       thirdparty/lib/curl/originals/config.status
?       thirdparty/lib/curl/originals/libtool
?       thirdparty/lib/curl/originals/curl-config
?       thirdparty/lib/curl/originals/src/curl
Run Code Online (Sandbox Code Playgroud)

我想告诉svn忽略这些文件.我不能简单地指定应该被忽略的目录,因为许多这些目录包含签入存储库的源.

上面的示例是生成的文件的子集,我们不能使用忽略模式,因为一些生成的文件与我们不希望忽略的文件匹配(例如xxx_.h")

我尝试过使用svn propset svn:ignore 'somefile' dir但我只能告诉svn忽略每个目录的一个特定文件.

如何为svn指定多个特定文件以忽略?

Jan*_*n.J 9

一线解决方案:

svn propset svn:ignore "file1"$'\n'"file2"$'\n'"file3" .
Run Code Online (Sandbox Code Playgroud)


tri*_*eee 8

您可以向其传递要忽略的文件列表,每行一个

vnix$ svn propset svn:ignore 'config.log
> libcurl.pc
> config.status
> libtool
> curl-config' thirdparty/lib/curl/originals
Run Code Online (Sandbox Code Playgroud)

... vnix$shell的主要提示符在哪里,>是辅助提示符.

不要害怕,这就是你在shell中编写多行字符串的方式.

或者,在stdin上提供一个文件:

vnix$ svn propset svn:ignore -F - thirdparty/lib/curl/originals <<HERE
> config.log
> libcurl.pc
> config.status
> libtool
> curl-config
> HERE
Run Code Online (Sandbox Code Playgroud)

另请参阅红皮书,尽管该示例对您的特定方案并不十分明确.