首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用由SVN支持的远程汞回购进行团队合作

使用由SVN支持的远程汞回购进行团队合作
EN

Stack Overflow用户
提问于 2012-02-28 09:34:12
回答 2查看 184关注 0票数 1

我现在工作的公司使用SVN。这里有很多团队,他们为他们所从事的项目拥有自己的存储库。这些存储库有时相互依赖(使用svn:外部),例如,一些终端用户项目使用核心团队回购,等等。

我想从SVN转到我的团队。我希望像这样设置工作流

  1. 最初将我们当前的SVN回购复制到Mercurial中,将其放到某个服务器上,并将其提供给团队成员(首次使用hg serve )。
  2. 团队成员开始只使用Mercural,没有直接的SVN提交,更新,签出。只有推/拉到/从根汞回购(设置在步骤1。)。
  3. 最终(某个白痴的工作?)我们的Mercurial回购被同步到旧的SVN服务器,以允许其他团队访问我们的工作。

我想知道有可能做这样的设置吗?我已经阅读了关于HgSubversion扩展的文章,但是它不能给我第三步--向SVN上游同步--然后对Mercurial的更改来自远程团队成员。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-28 13:00:29

正如您已经发现的,使用HgSubversion的主要限制是,在将汞历史推到Subversion时,需要将其线性化。这意味着你在变化无常的历史中不可能有分支,所以很难作为一个团队一起工作。

此外,当您推送您的变送器集时,HgSubversion将进行重基操作。假设您的团队在推送到服务器之前要小心地重新定位他们的本地提交。变化无常的历史看起来是这样的:

代码语言:javascript
复制
... r10 --- a1 --- a2 --- b1 --- b2 --- b3

艾丽斯和鲍勃在推他们之前重新建立了他们的改变集。当您与Subversion同步时,您将得到:

代码语言:javascript
复制
... r10 --- a1 --- a2 --- b1 --- b2 --- b3
       \
        r11 --- r12

HgSubversion现在将在[r12]的基础上重新建立汞变化集。

代码语言:javascript
复制
... r10 --- r11 --- r12 --- a1' --- a2' --- b1' --- b2' --- b3'

艾丽斯和鲍勃还没有素数的原始的无重基的变化集。因此,他们需要在从团队Mercurial服务器撤出前脱光衣服。这样的工作流程需要非常小心才能完成。

我曾经为客户端设置了一个更简单的工作流:我们没有在Subversion版本的基础上重新设置Mercurial变更集,我们只是将当前版本的文件提交给Subversion。这意味着我们不会在Subversion存储库中保存完整的汞历史记录。另一方面,我们可以很容易地处理合并之类的事情。

在上面的示例中,SVN服务器将从r13获得一个具有Mercurial存储库状态的b3r13修订版将是很大的:它包含了a1b3所做的所有更改。如果仍然使用Subversion的用户希望看到单个更改,那么他们必须查看Mercurial服务器--我们将提交到Subversion中的提交消息有链接到hgweb中用于Mercurial的单个更改集,因此很容易跳到那里。

票数 1
EN

Stack Overflow用户

发布于 2012-02-28 10:18:22

我想知道有可能做这样的设置吗?

是的,但是在不太明显的情况下会有一些麻烦,因为这种情况不能透明地(并且自动地)从hg翻译到svn。

上游同步到SVN,然后更改为Mercurial来自远程团队成员。

hg推,与svn-回购在路径段.但如上文所示,它将使不总是工作,并且可能需要在推送前手动重基。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9479476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档