7

我们为 CI 使用 CruiseControl.Net/NAnt/Subversion 堆栈。对每个构建进行新的检查太费时了,所以目前我们只是对工作副本进行更新。但是,这留下了孤立文件在源代码管理中被删除后可能保留在工作副本中的可能性。我们曾尝试使用 NAnt 删除任务在更新前删除所有代码源文件,但这可能会损坏工作副本。有谁知道在干净且最新的工作副本上运行构建的快速方法?编辑:我们在 SVN 1.3.2

4

5 回答 5

5

如果您只是“更新”,SVN 将删除源代码管理中已删除的所有文件。但是,在构建过程中创建的文件可能仍然存在并且可能会干扰新构建。我不确定 SVN 是否有删除它们的命令,但我想你可以用一个小脚本来做到这一点,SVN 肯定可以告诉你哪些文件在源代码控制之下,哪些不在。

于 2008-09-18T13:09:56.550 回答
3

我们的 CC 实现也有类似的问题。

我们的解决方案...我们已经制作了一个 3:00 AM 每晚构建,除了基本单元测试之外,它还执行了更长时间运行的集成测试。我们只是决定让凌晨 3:00 在新树上构建一个完全干净的构建。由于是半夜,它很少影响到任何人。所有其他“正常”签入都运行增量构建。

于 2008-09-18T13:16:26.050 回答
1

如果在完成 svn 更新后,您的工作副本中留下了孤立文件,那么您的 Subversion 版本中存在错误。

于 2008-09-18T13:06:43.890 回答
1

您可以每天进行一次完整构建,然后在签入时保持构建原样。此外,对于部署构建,始终使用干净的完整构建可能是一个好主意。

于 2008-09-18T13:07:58.830 回答
1

我能想到的唯一方法是在构建服务器上有两个副本。首先,您在第一个位置进行更新。您删除第二个位置。首先复制到第二个,然后在第二个位置构建。这样你总是从一个干净的构建开始。

您可能想看看为什么您的结帐需要这么长时间。我使用了相同的 buildserver 堆栈并且从来没有遇到过这个问题。Subversion 通常比构建本身花费更少的时间。

于 2008-09-18T13:09:23.850 回答