【问题标题】:After svn propset svn:ignore, files of svn repository are in M (edited) status在 svn propset svn:ignore 之后,svn 存储库的文件处于 M(已编辑)状态
【发布时间】:2015-10-29 10:54:11
【问题描述】:

我想忽略我的 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 st -u -v - 你会得到答案(对于文件,对于目录它是正确的)

标签: svn svnignore


【解决方案1】:

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

propset (pset, ps):设置文件、目录或 修订。

您应该确认在您实际修改文件的位置发布的命令之前没有使用过其他命令。

编辑:

我对我现在可以访问的 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   .

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

Subversion 可以识别以下特殊版本的属性 目录:

svn:ignore - 要忽略的文件 glob 模式列表,每行一个。

再次确认您没有使用其他命令或进行其他影响文件的修改。

如果您觉得需要“重新开始”重试,您可以使用svn revert -R . 命令恢复工作副本中的当前更改。只要确保您只使用属性即可;您不想丢失尚未签入的实际文件内容更新。

【讨论】:

  • @LazyBadger:再次为 propset 引用 svn 文档:“更改工作副本中的版本化 file 或目录属性。” (强调补充)。文档很清楚 files 可以修改,而不是“仅目录”。您没有充分的理由投反对票。
  • svn:ignore 一直是目录属性 “当在版本化目录中找到时,svn:ignore 属性应包含Subversion 应该使用换行符分隔的文件模式列表来确定该 same 目录中的可忽略对象。"
  • @LazyBadger:你说得对,svn:ignore 专门 是针对目录的,而不是作为一个整体的propset,这就是你之前指出的。我已经更新/重新措辞了我的帖子。顺便说一句,我没有发现你引用的具体句子不在 svn 帮助文档中。你的来源是什么?
  • SVN Book 第 5 段
  • 您的测试未完成。 Ruben 修改了文件,因为-u 还检查了服务器端更新(来自另一个客户端的提交,没有通过svn up 在本地接收),并且-u -v 可以显示很清楚。对于纯本地修改 -u 必须省略
猜你喜欢
  • 2013-06-05
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多