我们的CruiseControl系统从starteam检出代码。我注意到有时它只检出新增的文件,而不是新版本的文件。
有人知道这是为什么吗?
有人知道这是为什么吗?
我无法说这种情况为什么会发生,但是值得一提的是,我们通过让 StarTeam 在检出之前删除所有本地文件来完全避免了这个问题。我们用以下的 StarTeam 参数在 NAnt 脚本中实现:
delete-local -q -p "${starteam_project_root}" -is -filter "N" -cfgd "${exec_time}"
翻译成中文大致意思是:
delete-local -q -p "user:passwd@SERVER:49201/ProjectName/" -is -filter "N"-cfgd "09/18/2008 14:33:22"
我最近遇到了同样的问题。这种情况发生的原因与您在GUI中看不到过时文件或拥有未知状态的文件相同,即状态未更新。因此,如果您更新文件的状态,它将能够从源代码控制中获取已更改的文件。我们通过向配置文件添加一步骤来实现这一点。
<prebuild>
<exec>
<executable>C:\Program Files\Borland\StarTeam Cross-Platform Client 2006 R2\stcmd.exe</executable >
<buildArgs>update-status -nologo -is -q -p "username:password@192.168.0.1:49201/Code Project/Code Path" -fp "C:\projects\My Code Directory"</buildArgs>
<buildTimeoutSeconds>0</buildTimeoutSeconds>
</exec>
</prebuild>
这是一个CI构建,因此我希望在每次构建时查看差异,清除构建可以使我每次获得新的构建,并且我不知道有什么新内容。
那么这是一个已知问题吗?
http://nantcontrib.sourceforge.net/help/tasks/stcheckout.html