在svn propset svn:ignore之后,svn repository的文件处于M(edited)状态

After svn propset svn:ignore, files of svn repository are in M (edited) status

我想忽略我 SVN 上的一些文件。

我在我的根目录中创建了一个文件:.svnignore,其中包含:

*.sql
*.pyc

完成后:

svn propset svn:ignore -R -F .svnignore .

正在做:

svn st -u .

我的所有存储库都处于模式 M(已编辑)。这是为什么???

M            23630   core/templates/customers/index.html
 M           22740   core/templates/customers
 M           22740   core/templates/core/serial_number
 M           22740   core/templates/core
 M           22740   core/templates/orders
M            22742   core/templates/employees/index.html
M            22742   core/templates/employees/detail.html
 M           22740   core/templates/employees
 M           22740   core/templates/hours
 M           24365   core/templates/settings
 M           22740   core/templates/products
 M           22740   core/templates/projects
 M           22740   core/templates/tracker

有什么值得担心的吗?我做错了吗?

您使用的命令似乎没问题。 svn 文档包含 svn propset 命令的语句(参见 svn help propset):

propset (pset, ps): Set the value of a property on files, dirs, or revisions.

您应该验证在您实际修改文件的地方发布的命令之前您没有使用其他命令。

编辑:

我 运行 对我现在可以访问的 repo 进行了快速测试,以使用 svn version 1.9.1 (r1698128) 重现您显示的相同输出,如下所示:

$ svn propset svn:ignore "*.pyc" . -R
property 'svn:ignore' set on '.'
property 'svn:ignore' set on 'Backup'
property 'svn:ignore' set on 'Erp'
property 'svn:ignore' set on 'Import'
property 'svn:ignore' set on 'Launcher'
property 'svn:ignore' set on 'Overnight'

但是输出没有列出文件(这是预期的,但不是你得到的)。

$ svn st -u
M          103990   Erp
M          103990   Launcher
M          103990   Overnight
M          103990   Backup
M          103990   Import
M          103990   .

使用 badger 建议的 svn st -u -v 仍然显示未修改的文件,因为 svn:ignore 属性 是在目录上设置的。引用文档:

Subversion recognizes the following special versioned properties on a directory:

svn:ignore - A list of file glob patterns to ignore, one per line.

再次检查您是否没有使用其他命令或进行其他影响文件的修改。

如果您觉得需要 'start over' 再试一次,您可以使用 svn revert -R . 命令还原工作副本中的当前更改。只要确保您只使用属性即可;您不想丢失尚未签入的实际文件内容更新。