2012-04-25 140 views
6

我下躯干20个目录排除目录

/trunk/a1 
/trunk/a2 
/trun/a3 
.. 
.. 
/trunk/a20 

如何排除(不包括)一些(詹金斯在结帐时任意目录。 例如,我想将所有下树干的目录除/主干/ A3/B1 如何做到这一点?

我已经找到了答案在SVN checkout ignore folder,但是这是不可能的詹金斯下,需要一个更简单的解决方案,我不知道下树干目录的数量除了我想要的那个排除。

另外如何添加一个自定义的svn checkout.Let的说我想执行svn命令行工具来做结帐?

+0

你为什么要排除它?剂量它需要太多检查?还是太多空间?我问的原因是,根据原因,您最好检查一下,然后删除它。 - – 2012-04-25 20:00:53

+0

原因是被检出的目录有预构建库,需要很长时间才能构建。如果我们将结帐策略设置为“通过首先删除未版本化/忽略的文件来模拟结账,然后'svn'更新',svn结账将删除文件库文件夹,因为.lib和.obj文件被设置为忽略文件设置我们必须维护,以便开发人员只提交源文件但不提供.lib或.obj文件)。我想通过首先删除未版本化/忽略的文件来运行“Emulate checkout”,但一个文件夹除外。 – 2012-04-26 08:27:41

+1

@SriwanthaAttanayake:我个人建议将二进制文件完全放在结帐之外。取决于你的构建系统,但我一直在使用make(使用'VPATH'),autoconf('cd build; ../ src/configure')和cmake('cd build; cmake ../ src') 。在msbuild中,通过在命令行中定义“IntDir”和“OutDir”也是可能的。不知道其他类型的IDE,但我倾向于更喜欢使用cmake生成项目文件(当然,我工作的项目建立在几个截然不同的平台上,所以它是唯一可行的选择)。 – 2014-07-15 14:22:47

回答

0

由于您要更新(而不是完成结帐),因此您可以执行以下操作:初始结帐后,转至您要忽略的目录并执行svn up --set-depth=empty。后续更新不会更新目录。

+0

你确定詹金斯真的会尊重这个设置吗?它使用它自己的Subversion库,这在大多数情况下是非常古老的(svn 1.9即将发布,但Jenkins仍然只能创建1.7个签出 - 另外意味着你必须保留'svn' 1.7以设置选项)。 – 2014-07-15 14:15:05

1

我知道这是多晚,但也许这可能是有用的: https://issues.jenkins-ci.org/browse/JENKINS-25273

重要: 此版本包含快速和肮脏的修复!在我们的测试中,它是稳定的,没有错误,但为了避免问题,在 测试之前保存Jenkins环境。

安装: 只需删除Jenkins - 插件 文件夹中的subversion文件夹和文件,并将其替换为故障单中的subversion.hpi文件。 您还必须在插件文件夹 中创建一个名为subversion.hpi.pinned的空文件,以提供新插件不会被原始插件覆盖。