【问题标题】:What's wrong with my svn:ignore pattern?我的 svn:ignore 模式有什么问题?
【发布时间】:2023-04-04 18:41:01
【问题描述】:

我有模式svn:ignore datasheets/*/*.pdf
它应该忽略当前根文件夹下多个“数据表”目录下任意深度的所有pdf。

举个例子:假设我有一个这样的目录结构

网站 -web1 -数据表 -在 -忽略.pdf -是 -NL -忽略.pdf -FR -忽略.pdf -ignore2.pdf -许可协议 -important.pdf -web2 -数据表 -ETC

在这个例子中,模式需要忽略所有的 ignore.pdf,而不需要考虑 important.pdf。

显示的模式仍然包括我所有的 pdf 文件。

我知道有很多类似的问题,但似乎没有一个可以解决各种层次结构级别的问题。

【问题讨论】:

  • 请添加(到问题中,而不是作为评论)一些 svn 命令的输出,指示模式如何失败。例如。 svn 状态,更改某些 PDF 之前和之后:s.
  • 我不完全确定你的意思。我已将显示的模式添加到根的属性中,不会忽略任何较低目录中添加的 pdf

标签: svn svnignore


【解决方案1】:

来自the documentation

[U]与global-ignores 选项一样,svn:ignore 属性中的模式仅适用于设置该属性的目录,而不适用于其任何子目录。

您需要递归地将忽略模式应用到每个目录,您可以使用--recursive 选项来做到这一点。

【讨论】:

  • 遗憾的是,给出的示例并非真实情况。在我的真实世界案例中,有许多数据表文件夹,这些文件夹会来来去去。每次应用都是疯子的工作
【解决方案2】:

您应该使用内置 global-ignores 功能。忽略 svn 属性只会在一个级别上起作用,是的,如果要添加新文件夹,您必须更改它们或重新添加它们。

因此,请使用可以在本地配置中找到的 global-ignores 客户端功能 [在第 94 行附近,查找“global-ignores]。

本地配置可以在以下位置找到:

窗口:

%APPDATA%\subversion\config  

*尼克斯

~/.subversion/config

【讨论】:

  • 他不想忽略所有的 PDF,只想忽略其中的大部分。
  • 我以为他想忽略某个文件名的所有pdf,而不是忽略其他文件名
【解决方案3】:

svn:ignore 仅适用于已设置的目录。要忽略子目录下的文件,您必须将此属性递归地应用于子目录。 (-R 开关)。

请试试这个:

svn propset svn:ignore "*pdf" -R datasheets

【讨论】:

  • 它仍在添加所有的 pdf 文件:S
【解决方案4】:

我有 80% 的把握,你不能开箱即用地做你想做的事。查看提交后挂钩 - 您可以评估要添加的文件的路径名,如果它符合您指定的条件,则拒绝它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    相关资源
    最近更新 更多