我们的构建系统会生成许多散布在源树周围的文件。
运行svn status
在下面的示例中,所有文件都带有'?'在thirdparty
目录中已由构建系统生成。
e.g。
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
我想告诉svn
忽略这些文件。我不能简单地指定应该被忽略的目录,因为许多这些目录包含签入存储库的源。
上面的示例是生成的文件的子集,我们不能使用忽略模式,因为某些生成的文件与我们不希望忽略的文件匹配(例如xxx_.h“)
我尝试过使用svn propset svn:ignore 'somefile' dir
,但我只能告诉svn忽略每个目录的一个特定文件。
如何为svn指定多个特定文件以忽略?
答案 0 :(得分:9)
一线解决方案:
svn propset svn:ignore "file1"$'\n'"file2"$'\n'"file3" .
答案 1 :(得分:8)
你可以传递一个要忽略的文件列表,每行一个
vnix$ svn propset svn:ignore 'config.log
> libcurl.pc
> config.status
> libtool
> curl-config' thirdparty/lib/curl/originals
...其中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
另请参阅Red Book,尽管该示例对您的特定情况并不十分明确。
答案 2 :(得分:3)
如果你开始阅读文档,你会发现,
svn add
和svn status
中忽略,但仅适用于未版本控制的文件。已受版本控制的文件不受svn:ignore 你的forkflow必须是:
svn st
的输出来测试模式和阻塞的完整性