在获得测试服务器之前,我有:
- 我的笔记本电脑作为我的主要开发系统 - 本地存储库中的多个分支。 - 指向其中一个分支的本地工作副本。我经常在分支之间切换(通常是为了新功能)。 - GitHub账户,我经常将本地分支推送到镜像远程分支。(这主要是用于离线备份;我没有分享任何当前项目的代码)。我尝试在每个工作日结束时至少推送到GitHub,但偶尔会忘记。
我希望保留所有这些内容。除此之外,我现在还有:
- 测试服务器 - ……运行CruiseControl.rb - 在我的测试服务器上克隆了我的笔记本电脑存储库。 (目前它没有克隆GitHub) - 测试服务器上的本地工作副本,从中CC正在构建/测试。 - 这个工作副本指向一个特定的Git分支(当然)
我一直在尝试让我的测试服务器自动获取我笔记本电脑的工作副本上正在工作的任何分支并从中构建。 (这将模拟autotest的持续测试,而不会占用系统资源)。
我尝试过但没有成功的事情:
- git checkout origin/HEAD:这可以很好地获取文件,但会破坏CruiseControl,因为它不喜欢“无分支”的工作副本。 - git checkout --track -b a_branch origin/a_branch:这对于获取文件非常有效,并且CC很喜欢,但它会将测试服务器固定到特定的分支。当在笔记本电脑上切换分支时,我将有效地停止测试当前的工作。 - git checkout --track -b my_testing_branch origin/HEAD:这也可以获取可构建的文件,但它遇到与上述命令相同的问题。从origin/HEAD创建分支只会获取“默认”分支的HEAD,因此它也是固定的。
是否有任何方法可以获得一个良好的远程持续测试系统(带或不带git分支),而不需要对我的工作流程进行重大更改?