如何根据SVN中的平台忽略某些文件夹

时间:2011-01-03 18:01:22

标签: svn svnignore

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

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

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

是否可以配置SVN以忽略某些文件夹,具体取决于正在执行结帐的平台?

我们有一些想法:

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

    谢谢!

1 个答案:

答案 0 :(得分: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在线手册中查看Sparse Directories下的这些选项。