代码之家  ›  专栏  ›  技术社区  ›  David M

如何使DVCS与Subversion完全互操作?

  •  3
  • David M  · 技术社区  · 14 年前

    许多DVCSs都有某种与Subversion的双向接口,但是有一些限制和警告。例如,gitsvn可以创建一个镜像Subversion的存储库,对该repo的更改可以通过“dcommit”发送回Subversion。但是gitsvn手册页明确警告不要克隆存储库,所以本质上,它是一个可以使用git命令的Subversion工作副本。Bazaar也具有双向Subversion功能,但是它的文档指出Subversion属性根本不受支持。

    如果特殊存储库的任何克隆本身就是一个特殊存储库,并且可以直接提交给Subversion,这可能会很好,但是如果只有特殊存储库直接与Subversion交互,这可能就足够了。

    我认为最需要的是改进双向功能,以便将Subversion属性的更改转换为DVCS存储库中的更改。DVCS存储库中的一些更改将转换为Subversion属性的更改。

    或者在Subversion中创建一个与DVCS存储库交互的新功能,使用DVCS存储库作为一个特殊的存储层,比如fsfs或bdb,答案是什么?

    3 回复  |  直到 14 年前
        1
  •  3
  •   David M    14 年前

    在考虑了我得到的答案以及与其他人的一些对话之后,我的结论是,Subversion和DVCS能够管理的东西之间必然需要一对一的映射。如果没有,真正的互操作性就不可能存在。

    我不认为有任何现有的DVCSE甚至是这个候选人。正如chriskaminski所指出的,也许Subversion将来将通过包含分布式功能来解决这个问题。

    所以,我一直在想,是否有一种方法可以兼得:组织想要的Subversion存储库,以及围绕它构建的许多其他进程,以及hipster程序员需要的闪亮的新DVCS工具!

    可悲的是,我现在认为这是不可能的。我 认为

        2
  •  1
  •   Chris K    14 年前

    它被称为git,使用gitsvn可以与Subversion客户机进行互操作。git svn上的警告不是git<-&燃气轮机;svn,它是(git<-&燃气轮机;吉特)<-&燃气轮机;svn公司。基本上,他们说如果你使用git访问SVN存储库,不要通过push/pull与其他人共享你的git存储库。否则就没问题了。您通常会断开对网络化subversion存储库的源代码控制。这就是全部。

    subversion的人在路线图上有一些DVCS功能,可能是受SVK的成功和git/mercurial/bazaar日益流行的刺激。

        3
  •  1
  •   Community Neeleshkumar S    7 年前

    我认为没有一种真正的方法可以让这两种工具完全互操作,特别是当你考虑到:

    • SVN是一个修订控件,它模拟带有目录的标记和分支
    • SVN不像Git那样记录合并信息

    SVN vs. Git )

    所以想要“DVCS端的用户甚至不需要知道Subversion存储库的存在”有点牵强,至少在没有类似git的中间版本的情况下是这样的 Chris suggests in his answer

    我只想加上 svn2git git2svn
    (参见“ Cloning a Non-Standard Svn Repository with Git-Svn

    推荐文章