我正在将我的持续测试移至专用服务器(自动测试会让我的本地笔记本电脑速度变慢)。我想要的是我的测试服务器(正好运行CruiseControl.rb)不断通过Git获取我最新(已提交)的更改 - 理想情况下,我的工作流程没有任何更改。我是这个项目的唯一开发人员。远程跟踪Git中的当前分支
此前获得的测试服务器,我有:
- 我的笔记本电脑作为我的主要开发系统
- 多个分支在我的本地库。
- 本地工作副本,指向其中一个分支。我经常在分支之间切换(通常用于新功能)。
- 我经常将本地分支推送到镜像远程分支的GitHub帐户。 (这主要是为了使用非现场备份;我没有为我当前的项目共享任何代码)。至少在每个工作日结束时我都会尝试推送GitHub,尽管我偶尔会忘记。
我想保留所有这些完好无损。最重要的是,我现在有:
- 测试服务器
- ...运行CruiseControl.rb
- 我的笔记本电脑资料库我的测试服务器上的克隆。 (目前它不克隆GitHub)
- 测试服务器上的一个本地工作副本,CC正在其中进行构建/测试。
- 这个工作拷贝到一个特定的Git分支
我一直在试图让我的测试服务器自动获得我工作的任何分支在我的笔记本电脑工作拷贝,并从建设(当然) 。 (这会模仿自动测试的持续测试而不会消耗系统资源)。
事情我已经尝试没有成功:
- git的结帐出身/ HEAD:此获取文件不错,但打破CruiseControl的,因为它不喜欢的“网点”工作副本。
- git checkout --track -b a_branch origin/a_branch:这对于获取文件很好,而CC喜欢它,但它将测试服务器粘贴到特定分支。当在笔记本电脑上切换分支时,我将有效地停止测试当前的工作。
- git checkout --track -b my_testing_branch origin/HEAD:这也可以获得可构建的文件,但它遭受与上述命令相同的问题。从原点/ HEAD创建分支只会获得“默认”分支的HEAD,因此它也很粘。
有没有什么办法可以得到一个好的远程连续测试系统(有或没有git分支机构),它不涉及我的工作流程的重大变化?
为了让测试服务器获得最新的测试代码,你必须将它推到某个服务器可以抓取它的地方,我不相信git中有一个后推钩,而且我也认为挂钩会在执行推送的机器上运行(例如,您的笔记本电脑,而不是具有存储库的服务器)。 – 2009-11-23 14:06:54
最初,我完全是无推动,并从我的笔记本电脑拉服务器。 Pat的后置提交钩子的建议可以起作用,如果它引发了一个消息到服务器(例如:一个ssh远程命令),导致服务器开始拉动。但是,我现在正在靠向推送路线。 – 2009-11-23 18:26:41
事实上,在git-push – 2009-11-23 18:27:47