【问题标题】:SVN ignore all sub-folders with a specified nameSVN 忽略所有指定名称的子文件夹
【发布时间】:2011-03-02 21:10:35
【问题描述】:

我想忽略所有当前和未来创建的 1 级深度文件夹中的特定命名子文件夹。

我有一个文件夹,其中包含我用来生成文件的所有模板。这个文件夹本身就是一个包含实际模板的文件夹集合。类似于以下内容

  • 模板
    • 创建
      • magic.template
      • unicorn.template
    • 更新
      • fairy.template
      • dust.template
    • ...

我的构建过程会遍历所有文件夹并将模板转换为实际文件。这些被放置在一个名为 GeneratedTemp 的子文件夹中。这会产生以下结构。

  • 模板
    • 创建
      • magic.template
      • unicorn.template
      • 生成的温度
        • magic.actual
        • unicorn.actual
    • 更新
      • fairy.template
      • dust.template
      • 生成的温度
        • fairy.actual
        • dust.actual
    • ...

我想要做的是忽略所有名为 GeneratedTempTemplates\XXX 子文件夹。这可能吗?怎么做?

【问题讨论】:

  • 您使用的是哪个 SVN 客户端?

标签: svn svnignore


【解决方案1】:

您可以为包含 GeneratedTemp 的文件夹添加 svn 属性。将目录更改为 /Templates 并执行:

svn propset svn:ignore --depth=immediates GeneratedTemp .
svn ci "ignore */GeneratedTemp"

这将为 /Templates 文件夹中的所有文件夹设置 svn:ignore 属性。请注意,如果有的话,它将清除所有以前为这些文件夹设置的 svn:ignore 属性(在这种情况下,您应该使用 svn propedit)。

【讨论】:

  • 这看起来像是我需要的解决方案。我试图弄清楚如何修改属性文件以包含深度参数。据我所知,TortoiseSVN 没有添加这些属性的命令行工具。
  • 对,在 TortoiseSVN 中,您需要手动完成这一切。我建议安装命令行 svn (SilkSvn),因为它通常有更多选项和更灵活。
  • 你能帮我看看如何做同样的事情吗?要下载什么或遵循哪些菜单来忽略文件夹?以及在哪里安装(如果真的需要 SilkSvn)并点击?
  • 您可以在此处下载我在 Win: SlikSvn 上使用的命令行颠覆客户端:sliksvn.com/en/download。如果安装了 TortoiseSVN - 右键单击​​要在 WC 中忽略的文件(文件具有特殊的 TortoiseSVN 特定图标),然后 TortoiseSVN 菜单 -> 按扩展名忽略或按全名忽略
【解决方案2】:

在受版本控制的文件夹中包含未受版本控制的文件或文件夹绝不是一个好主意。相反,请尝试找到一个目录结构,其中所有生成的文件都放置在源代码树之外的某个位置。

【讨论】:

  • 我不同意;这样做是完全可以接受的;只需将它们添加到忽略列表中;这就是它的目的。这并不是说我总体上不同意您提出的策略;我认为这在某些环境中可能是可以接受的;但这不是必需的。
  • 同意@Noon Silk。忽略一些工作文件夹/文件是常见的做法。
  • 哦,也许“从不”这个词太强了。但是,如果可能的话,最好有一个或几个包含日志和生成文件的被忽略目录,而不是将它们分布在版本化文件树中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 2015-12-29
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多