问题摘要:
当我写下这篇文章时,我意识到有很多细节,下面是标题:
在写这篇文章时,我也意识到我要求做的事情非常复杂,可能根本不可能.
The Detail:
我和一个使用SVN存储库的团队一起工作。我们中的许多人已经开始使用Git SVN,现在正在收获以下好处:在本地使用Git,随心所欲地分支,必要时合并到本地大师中,然后再返回SVN。这很好(虽然我意识到我们并没有从纯Git解决方案中获得所有的好处)。
最近,我开始使用一个私有的BitBucket作为Master,这样我就可以轻松地将代码从其他地方传输到其他地方。工作流程如下:
好吧,有几个步骤,但对我来说效果很好。但是,我的一些同事想要开始做同样的事情。更重要的是,我们希望能够使用我们的BitBucket Git回购没有障碍的SVN。
一些我们正在考虑的事情的例子:
但是,假设我们中的一个已经做了这件事,那么这个团队的其他成员会发生什么呢?如果他们从BitBucket大师那里撤出,他们就会得到改变。但是,如果他们从SVN重新基地,他们也会得到改变。
如果他们两者都做了呢?这只是一个可能的障碍。我可以想到其他的步骤,如果这一切都可能陷入真正的混乱。
不幸的是,我们的持续集成工作流与SVN联系在一起,业务的其余部分也是如此。因此,我们没有真正的选择,移动到Git的整体。我们也不能从公司外部访问我们的SVN存储库。
发布于 2012-07-14 14:08:49
看看为那些同时使用Git和SVN存储库的人而设计的SubGit项目。如果您可以访问SVN服务器,则只需运行
$ subgit install path/to/svn/repository然后,为存储库创建一个Git接口。对Git存储库的每一个推送都被转换为SVN,反之亦然。您只需设置对新创建的Git存储库的访问。
一些用于SVN<->Git镜像的基于Git-SVN的脚本提出了类似的功能,但它们与SubGit相比有缺点:
git-svn的优点是有可能将Git镜像保存在另一台机器上;但这是以并发安全性(在同一台机器上的条件是将SVN和Git存储库锁定一段短时间)。
发布于 2012-07-14 13:10:26
将git服务器与svn存储库同步不是一件容易的事情。如果您想使用两台服务器,一台带有git,另一台带有subversion,那么您将遇到以下问题:
我在工作中试图实现同样的同步(在构建过程中我们也绑定到svn ),在进行了一些实验之后,我发现可靠的工作方法是使用git服务器(每个人都使用),并同步subversion的更改,这样jenkins或您使用的集成服务器也可以获得最新的更改。实现这一点的最简单方法是只在一个方向同步,git -> svn。这意味着没有人提交svn (除了git同步进程)。
如果这个解决方案对您有用,我记录了我是如何做到的,并构建了几个脚本来自动完成它。你可以找到它,在这个岗位上。
https://stackoverflow.com/questions/11483953
复制相似问题