2013-07-26 36 views
1

好日子#1切换SVN的工作副本提交到两个不同的服务器

我有我的管理系统的SVN工作拷贝我的本地机器上。

工作副本从我们的生产服务器中检出。因此,我或我的团队成员提交的任何提交都会转到生产服务器回购站。

我想要做的是在开发服务器上用生产服务器代码创建一个回购。这样我和我的队友就可以把所有东西都交给开发箱。当我们对代码感到满意时,我想将本地存储库切换到提交给生产服务器的地方

这样的事情是可能的。如果是这样......怎么样?

+1

为什么不能使用相同的回购和出口到不同的文件夹(我的意思是生产,测试或开发)? –

+0

我不太清楚你的意思? – Ryan

+0

为什么你有两个不同的回购发展和生产的任何特定原因?为什么不有一个回购,并采用[分支策略](http://stackoverflow.com/questions/597707/best-branching-strategy-when-doing-continuous-integration),以便系统的生产版本在一个特殊的分支?就个人而言,我更喜欢功能分支,其中“'trunk'为王”,并且是从哪个分支发布到生产 –

回答

1

当使用单台服务器上的树枝更容易管理的方式,您可以有两个仓库,并将它们之间,如要求

  1. 创建生产(svnadmin dump PROD-PATH > DUMPFILE
  2. 创建DEVEL回购的完全转储(svnadmin create DEVEL-PATH切换)
  3. 将PROD加载到DEVEL(svnadmin load DEVEL-PATH --force-uuid < DUMPFILE)。 --force-uuid是强制性为了具有在两个回购(因此允许移居存储库之间的单WC),“svnadmin的制造”相同的UUID分配唯一的UUID来DEVEL
  4. 移居WCS来DEVEL
  5. 代码提交测试...

为了回返回代码PROD

  1. 弄干净厕所,更新到DEVEL HEAD
  2. 移居到WC PROD
  3. 更新WC到PROD HEAD,合并更改
  4. 提交从DEVEL在WC积累的所有的变化,一个 “大爆炸” 承诺PROD
  5. 进入到第I部分,第4步
+0

这是一个非常棒的方式,但它似乎将代码发送到生产服务器需要很多开销...... – Ryan

+0

@Ryan - 是的,分支机构是这种情况下的自然方式(tm) –

2

为什么生产有版本控制系统,但不是开发者?

版本控制是针对开发者的。你应该能够检出,更新,修改代码,添加功能,犯错误,做愚蠢的东西等。这是版本控制的目的!

生产,如果他们从Subversion版本库获得代码,应该检查标签的代码。标签就是你想让世界看到的东西。通过仔细和严格的测试,你希望已经清除了你的错误,错误和其他笨拙。

将您的Subversion存储库从Production移到您的开发环境中。也就是说,除非你的意思是支持和维护产品 - 不是说生产环境中的人(如客户)实际上使用Subversion。在这种情况下,让存储库保留在Production中,但开发人员不应该害怕使用它。

一些网站使用中继严格为释放代码。这不是一个好主意。发布代码应该放入标签目录中。主干和分支是为程序员做的编程

+0

我明白你的答案。你会发现我们正在使用http://www.springloops.io/来承载我们的产品svn,我们的承诺就是在这里。我不确定我们是否可以在可以提交到springloop的开发框中进行回购? – Ryan

+0

我们设法开始使用分支机构。谢谢你们的建议 – Ryan