与SVN和大型存储库的持续集成

与SVN和大型存储库的持续集成,svn,version-control,cruisecontrol.net,Svn,Version Control,Cruisecontrol.net,因此,我们有一个SVN存储库,其中包含一个相当大的项目,第一次需要大约一个小时才能完成。我们已经设置了与CruiseControl的持续集成,并在提交时触发它。由于拉取时间很长,我们不会删除构建机器上的构建目录,而只是发出svn update命令以获取最新版本 在添加、更新和删除已签入SVN的文件方面,该工具可以很好地工作,但我们遇到的问题是,在构建过程中会生成文件。这些生成的文件永远不应该签入,但我想在构建之间清除它们 基本上,我想要一个svn update命令: 已将目录更新为当前版本 删除

因此,我们有一个SVN存储库,其中包含一个相当大的项目,第一次需要大约一个小时才能完成。我们已经设置了与CruiseControl的持续集成,并在提交时触发它。由于拉取时间很长,我们不会删除构建机器上的构建目录,而只是发出svn update命令以获取最新版本

在添加、更新和删除已签入SVN的文件方面,该工具可以很好地工作,但我们遇到的问题是,在构建过程中会生成文件。这些生成的文件永远不应该签入,但我想在构建之间清除它们

基本上,我想要一个svn update命令:

  • 已将目录更新为当前版本
  • 删除所有不受源代码管理的文件
  • 我只是遗漏了什么,还是没有SVN命令

    更新:
    我在一台windows机器上。我知道我可以用cygwin或其他方法来实现这一点,但我很好奇是否有SVN或CC.Net的功能来实现这一点。

    查看这篇关于如何使用多种方法的博文(和评论线程)。如果您对使用git感到满意,我认为切换到git svn作为您的客户端也可能允许您处理清理。

    您可以运行svn update命令,然后删除前面提到的未版本文件


    任何一个都可以。哦,也许你是在一个视窗盒子上?您能澄清一下吗?

    您最好在构建脚本中使用一个“干净”的目标,并设置svn:忽略包含构建系统输出的目录上的属性。我同意,然而,这将留给其他开发人员来确保他们在检查写入构建目录的内容时正确地写入/更新干净的目标(在Git中,这将是
    Git clean-d-f
    -f
    强制删除,
    -d
    也清理目录:)。我在windows计算机上。我更新了我的问题,使之更具体。
    svn status | grep '^\?' | cut -c8- | xargs rm
    svn status | grep '^?' | awk '{print $2}' | xargs rm -rf