如何在TeamCity中集成git和svn?

3

目前情况如下:

  1. TeamCity已设置为从SVN构建。
  2. TeamCity已设置为从GIT构建。
    • TC服务器上的Git裸仓库(而非代理)

我手动将代码库(带有svn参考)rebase(git spull - 标准别名)并检入到TC服务器上的Git裸仓库中(git push)。

由于我们正在迁移到Git(假设我们能够解决问题!),因此我们会同时从svn和git进行检入。

需要注意的一点是,即使每个人都停止了对svn的检入,公司政策也要求更新svn代码库。(因此,在成功构建后,我们将触发“git spush”)

那么,TeamCity的设置应该是什么样的呢?

  1. 最坏的情况是,我手动从svn拉取(直到所有人都不使用svn),并rebase裸Git仓库。在每个人都迁移后,根据上述公司政策,这种方式将继续。
  2. 另一种方法可能是将svn参考添加到裸仓库中,并编写一个脚本,通过TC每小时调用“git spull”。
    • 如果存在合并冲突,则可能会出现问题
    • 还需要另一个配置,在成功构建后执行“git spush”
  3. 还有一种方式,可能是添加一个svn插件,以在每次svn检入后触发“svn spull”,并将其放入特殊分支中进行手动合并步骤(比选项1稍好,并消除了选项2的最坏情况)

还有其他方法吗?有人做类似的事情吗?

2个回答

1

0

首先,我非常有兴趣阅读您完成迁移后的经验分享。撰写博客文章或其他记录您遇到的问题的文档将是一份极好的资源。我正在考虑在我的工作场所开始同样的迁移。

我认为选项2听起来最明智,但我不确定为什么您需要设置拉取操作和推送操作。为什么不继续使用成功构建的推送到SVN以保持其与Git同步?


我只是兼职处理这个(似乎还有真正的工作要做),但一旦解决了,肯定会在这里发布答案。我已经开始实施第二个选项,但目前只有一种方式。迁移不会一次性完成,所以我们需要进行很多同步。就像我说的那样,我会再次发布。 - kkwak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接