SVN可以这样做,还是应该转移到Git

时间:2011-08-25 01:14:11

标签: git svn

我们有一个内部CMS,目前我们检查了它的基本副本,并重新提交为新的repo并对其进行更改。如果这些更改属于核心,我们必须将文件复制到基本副本,或者如果我们将副本复制到核心,我们必须将更改复制到每个项目。

我们正在尝试为新项目做的是:

  1. 查看基础项目的副本
  2. 将其作为新的仓库进行检查
  3. 对#2
  4. 进行任何项目特定更改
  5. 对basecopy进行任何核心更改,并更新我们从该
  6. 检出的副本

    所以1个基数,来自基数的多个回购,更新基数并将更新推送到回购。

    但是我们不希望从我们制作的respos更新基础。

    这可能吗?

    ===== update =====

    做了更多的googeling之后,我可以使用svn中的分支功能来做到这一点吗?

    如果我们需要将更改从基础推送到我们仍然可以执行的所有项目,那么

    将每个新项目分支从基础分支出来。我们可以对每个分支进行项目特定的更改。

2 个答案:

答案 0 :(得分:3)

是的,你可以这样做。它被称为svn:externals属性。

因此,仅为核心文件创建单独的存储库,并将其作为外部文件插入到其他项目中。

答案 1 :(得分:2)

嗯,听起来像是像Git或Mercurial这样的DVCS的工作。与其说DVCS在这里更好,但是根据我的经验,当前可用的实现比SVN更好地处理分支和合并。使用Git或Mercurial,您可以设置良好的存储库内合并,不强制执行层次结构。但主要是因为您不需要通过副本的某些更改来更新基础(因此您似乎需要选择性更新)。

是SVN可以做到的。也许你永远不会将你的“新回购”的变更提交给基地。

相反,使用DCVS,您可以非常灵活地推送什么,何时何地。 :)

编辑:我对svn:externals知之甚少,检查zerkms的答案,因为它看似合适。