0

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

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

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

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

我们有一些想法:

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

这个事情谁有经验?

谢谢!

4

1 回答 1

2

您可以使用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 在线手册中的稀疏目录下检查这些选项。

于 2011-01-03T21:15:27.997 回答