【问题标题】:How to ignore some folder depending on the platform in SVN如何根据 SVN 中的平台忽略某些文件夹
【发布时间】:2011-01-03 18:01:22
【问题描述】:

我们有一个 SVN 树,用于在各种平台(Win、OSX、Linux、Iphone、Android)上编译我们的软件。

我们为所有应用程序使用相同的树,以保持简单和干净。

这很好用,但签出时间开始成为问题,因为我们需要签出每个平台的所有依赖项(依赖项位于嵌套的子文件夹中)。

是否可以配置 SVN 以根据执行结帐的平台忽略某些文件夹?

我们的一些想法:

  1. 在排除部分树的每个平台客户端中使用不同配置的全局忽略模式。缺点:我们需要改变我们的树以便拥有一个不排除确实需要的东西的单一模式。我们目前没有:(
  2. 使用 svn:ignore 标签:我认为这不依赖于平台。可以吗?
  3. 为每个平台设置不同的根文件夹,然后使用“externals”仅链接所需的内容(这是需要维护的大量工作)

有人有这方面的经验吗?

谢谢!

【问题讨论】:

  • 这个问题类似于stackoverflow.com/q/508135/16070
  • 只是想知道:为什么您需要一次又一次地进行完整的结帐?每次构建之前的svn update 应该足够了,如果您想确保没有本地修改,请在svn update 之前执行svn revert -R *

标签: svn svnignore


【解决方案1】:

您可以使用svn co --depthsvn --set-depth 来规避您不想结帐的内容。指定每个目录可能会有点乏味,但您可以将 shell 和批处理脚本放在工作目录的根目录中以帮助您完成这项工作。

C> svn co --depth immediates %URL% mydir
C> cd my dir
C> helpcheckout.bat
Checking out tree for Windows...
[...]

$ svn co --depth immediates $URL mydir
$ helpcheckout.sh --platform linux
$ Checking out tree for Linux development...

在 Subversion 在线手册中的 Sparse Directories 下查看这些选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2010-10-30
    • 2011-06-20
    相关资源
    最近更新 更多