我使用svn add*将文件添加到svn,并添加配置文件,肯定会添加到忽略.
lyuba@lyuba-laptop:/workspace/project$ svn propget svn:ignore
.sass-cache
config.js
Run Code Online (Sandbox Code Playgroud)
什么可能导致问题?
Adr*_*ith 10
在UNIX和Linux中,如果你说
svn add *
Run Code Online (Sandbox Code Playgroud)
然后shell将展开目录中的所有文件,程序将看到与您键入的文件相同的内容
svn add file-a.txt file-b.txt file-c.txt
Run Code Online (Sandbox Code Playgroud)
这意味着Subversion命令认为您已明确列出要添加的文件.在这种情况下,即使svn:ignore
可能设置了属性,它也会添加它.
从(我的重点)的 文件svn:ignore
:
Subversion使用忽略模式来确定哪些文件不应作为更大的递归添加或导入操作的一部分扫描到版本控制系统中.
小智 9
超级老问题,但我刚刚遇到这个问题,我找到的解决方案没有列在这里.阿德里安史密斯的答案是正确的.我认为文档和SVN本身已经在5年内看到了许多更新.这是我在SVN文档中找到的内容
即使
svn:ignore
已设置,如果在命令中使用shell通配符,也可能会遇到问题.在Subversion对它们进行操作之前,Shell通配符会扩展为明确的目标列表,因此运行svn SUBCOMMAND *
就像运行一样svn SUBCOMMAND file1 file2 file3 …
.在svn add
命令的情况下,这具有类似于传递--no-ignore
选项的效果.因此,不要使用通配符,而是使用svn add --force .
大量的无版本事件进行调度以进行添加.显式目标将确保当前目录不会被忽略,因为它已经受版本控制,并且该--force
选项将导致Subversion爬过该目录,添加未版本控制的文件,同时仍然遵守svn:ignore
属性和global-ignores
运行时配置变量.如果您不希望对要添加的内容进行完全递归爬网,请务必同时提供该命令的--depth files
选项svn add
.
短版本是使用svn add --force .
这对我来说非常适合.