我正在使用 svn add * 将文件添加到 svn,它添加了肯定添加到忽略的配置文件。
lyuba@lyuba-laptop:/workspace/project$ svn propget svn:ignore
.sass-cache
config.js
什么会导致问题?
在 UNIX 和 Linux 中,如果你说
svn add *
然后 shell 将展开目录中的所有文件,程序将看到与您键入的相同
svn add file-a.txt file-b.txt file-c.txt
等等。这意味着 Subversion 命令认为您已经明确列出了要添加的文件。在这种情况下,它会添加它,即使该svn:ignore
属性可能已设置。
从 (我的重点)的文档中:svn:ignore
Subversion 使用忽略模式来确定哪些文件不应作为更大的递归添加或导入操作的一部分被扫描到版本控制系统中。
使用此命令代替svn add --force *
:
svn add --force ./
在这种情况下,svn 本身会解析目录中的所有文件并考虑被忽略的文件,但是当您使用 * 时,您明确告诉 svn 添加所有文件。
我发现这个问题包含一个非常好的解决方案。由于答案实际上并没有回答问题,我认为它不是重复的。简而言之,使用 unix 工具的强大功能(在 windows 上与 cygwin 一起使用):
svn status | grep '?' | sed 's/^.* /svn add /' | bash
您是否尝试过提交 config.js 以查看它是否真的被忽略了?我认为,如果您特别告诉 svn 将文件添加到版本控制中,它将超越忽略。