如何为TeamCity集成git和svn?

时间:2011-03-30 13:35:01

标签: svn git continuous-integration teamcity

目前:

  1. TeamCity设置为从SVN构建。
  2. TeamCity设置为从GIT构建。
    • 在TC服务器上的Git裸仓(不在代理上)
  3. 我手动(来自我的repo,它有svn ref)变基(git spull - 标准别名)并检入TC服务器上的裸git repo(git push)。

    由于我们正在迁移到git(假设我们可以弄清楚如何!),我们有来自svn和git的签到。

    有一点需要注意的是,即使每个人都停止按公司政策签到,也需要更新svn repo。 (因此,在成功构建之后,我们将触发“git spush”)

    TeamCity的设置是什么?

    1. 最糟糕的情况是我从svn手动拉出(直到每个人都关闭svn)并重新绑定裸git repo。根据上述公司政策,每个人迁移后都会继续这样做。
    2. 另一种方法可能是将svn ref添加到裸存储库并编写一个脚本,通过TC每小时左右调用一次“git spull”。
      • 如果存在合并冲突,可能会遇到麻烦
      • 还需要另一个在成功构建后“git spush”的配置
    3. 另一种方式,可能是在svn中每次签入后都有一个svn插件来触发“svn spull”,并在一个特殊的分支中通过手动合并步骤将其删除(稍微好于选项1并删除最坏的情况)选项2)
    4. 还有其他方法吗?有人在做类似的事吗?

2 个答案:

答案 0 :(得分:1)

Darn it,我希望我之前找到这个博客!

http://www.tfnico.com/presentations/git-and-subversion

我得出了类似的结论,但却浪费了5-6个小时。

答案 1 :(得分:0)

首先,我非常有兴趣了解一旦完成迁移后如何完成迁移。撰写博客文章或撰写您的经历,记录您遇到的问题,将是一个很棒的资源。我正在考虑在我的工作地点开始相同的迁移。

我认为选项2听起来最明智,但是我不确定为什么你需要设置一个拉动操作以及一个推动操作。为什么不继续将成功的构建推送到SVN以保持与Git同步?