Continuous integration 使用CI Server时如何在多台计算机上开发代码

Continuous integration 使用CI Server时如何在多台计算机上开发代码,continuous-integration,Continuous Integration,我目前在上下班的大部分时间里都在笔记本电脑上完成很多工作。但它远没有我在家里的主机那么好或容易。我的问题是如何保持文件同步。我使用subversion,但也有一个CI服务器,可以在每次签入时进行重建。有一个问题涉及多台机器,并说要使用源代码管理。但是,如果存在CI服务器,这将导致构建中断 我的第一个想法(似乎有点愚蠢)是对同一代码使用两组源代码控制,或者至少两个repo。一个用于CI服务器,另一个用于在计算机之间传输。我不确定你能用SVN做到这一点。只是看着Mercurial。不确定这是否能够工

我目前在上下班的大部分时间里都在笔记本电脑上完成很多工作。但它远没有我在家里的主机那么好或容易。我的问题是如何保持文件同步。我使用subversion,但也有一个CI服务器,可以在每次签入时进行重建。有一个问题涉及多台机器,并说要使用源代码管理。但是,如果存在CI服务器,这将导致构建中断

我的第一个想法(似乎有点愚蠢)是对同一代码使用两组源代码控制,或者至少两个repo。一个用于CI服务器,另一个用于在计算机之间传输。我不确定你能用SVN做到这一点。只是看着Mercurial。不确定这是否能够工作,因为您仍然存在推送到中央回购的问题,而中央回购将是CI服务器的来源

我想问题的关键在于,如何共享仍然存在bug或未编译的代码,以便在不中断构建的情况下切换机器


谢谢

事实上,您使用多存储库的想法是正确的,但是Subversion本身并不支持这种事情。考虑使用一种所谓的存储库,例如或,在这种存储库中,您可以拥有多个存储库,并且可以轻松地在它们之间共享更改


然后,您可以将更改从台式机或笔记本电脑推送到中央服务器,您的源代码管理系统将为您解决所有问题。尚未完成的更改可以在另一个分支上完成,因此,如果有一天早上在火车上编写了一些好代码和一些坏代码,您可以将好代码推送到CI服务器使用的存储库,将坏代码推送到桌面开发机上,并从您离开的地方继续执行。

分支如何?在一个分支上进行开发,并且只有在完成一项开发后才能重新整合?

您是说您可以选择将更改推送到哪里,这样我就不必只推到中央回购,我可以选择将更改推到哪里?那太酷了!谢谢格雷格,刚刚发现这个:这简单地解释了它,我来了!我已经用树枝了。如果在后备箱上发现一个bug,我在火车上修好了一半,想在像样的监视器/机器上完成,会发生什么。如果我签入它,我会破坏构建,对主干进行分支以修复错误,然后在每次更改时将其合并回来(在列车上也没有网络访问权限)。但是这个错误是否只在主干上,而不是任何其他分支上?我的猜测是:1。保持第二个分支,尽可能与主干保持同步。2.如果你在火车上,你可以在第二个分支上修理东西。3.当你下了火车,走进办公室或家里,你可以在这家分行工作,在你像样的机器上检查一下,继续工作,而不会弄坏行李箱。不过,这确实需要您将办公室/家庭计算机切换到不同的分支机构。我知道您来自何方。似乎是额外的工作(与DVCS相比),但如果我不得不留在SVN,这似乎是明智的做法。谢谢