"svn add*"甚至会添加被忽略的文件

lyu*_*uba 8 svn ignore

我使用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使用忽略模式来确定哪些文件不应作为更大的递归添加或导入操作的一部分扫描到版本控制系统中.

  • `svn add. - 深度无限 (3认同)

小智 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 .这对我来说非常适合.


jgi*_*d25 0

您是否尝试过提交 config.js 以查看它是否真的被忽略?我认为如果你明确告诉 svn 将文件添加到版本控制中,它会覆盖忽略。