在我自己的存储库中将只读供应商SVN存储库设置为镜像/外部

时间:2013-07-15 14:49:35

标签: linux svn ubuntu tortoisesvn

目前我正在开发opencart网站,我想将opencarts源集成到我自己的SVN(https://github.com/opencart/opencart)中。

目标是能够对核心OpenCart文件进行自定义,然后在发布新版本的开放式购物车时,将更改集成到我的本地版本中。

我在考虑源结构如下:

  • /trunk/opencart - 我的自定义版本的open cart
  • /vendor/opencart - 当前的opencart主干。

预期的工作流程是从服务器中提取最新的打开购物车,然后在我的主干中执行本地合并。目前,我一直在努力正确设置,因为我对SVN和TortoiseSVN很新。

我目前的设置是Windows7运行TortoiseSVN 1.8.0,Build 24401 - 64 Bit。在我的本地服务器上,我有Ubuntu 13.04 64bit with svn,版本1.7.5(r1336830)。

我设法设置了我可以检入和退出的存储库,并使用externals在vendor文件夹中创建了一个外部引用。但我正在努力从这个外部数据生成主干线。当我尝试从vendor/opencart分支到trunk/opencart时,它会尝试在https://github.com/opencart/opencart而不是本地服务器上生成该分支。 (由于存储库是只读的,这正确地失败了。)

如果我尝试使用trunk/opencart在空vendor/opencart文件夹中执行SVN合并,我也会遇到问题,因为trunk文件夹中缺少祖先。我读过多个来源 - 有人说使用我的方法,有人说我应该使用svnsync。

最好/最简单的方法是什么?理想情况下,我希望SVN提取最新的源代码,而不是将源代码转储到单独的文件夹中。

1 个答案:

答案 0 :(得分:0)

  1. 重新阅读Subversion中的svn:externals
  2. 获取此Git存储库的Subversion URL(SVN无法直接与Git通信) - 它是侧栏中的“Subversion checkout URL”,在Repo-browser中打开并为您选择所需的子树 - 它可以是一些分支或主干,记住所需子树的完整URL(可以是,fe,https://github.com/opencart/opencart/trunk/upload
  3. 定义,您的存储库中要挂载外部存储库的位置(让它为/ vendor / opencart URL)
  4. 将挂载点的父节点(或我们案例的父节点的父节点,如果父节点仍然不存在)与新的无关工作,工作副本
  5. 在WC根新文件夹(通常,普通,标准)供应商
  6. 中创建
  7. 对于文件夹vendor,在TSVN的向导中​​添加新的svn-propery svn:externals
  8. 提交更改
  9. 检查结果
  10. PS:您可以在此网址https://subversion.assembla.com/svn/subversion-troubleshoot-b/trunk看到(结帐,检查)作为外部最简单用例的示例(trunk中的子目录lib是svn:external到另一个存储库子树)

    PPS:在启动时,您的主干可以为空,您合并/vendor/opencart以便在主干中获取初始的vanilla代码状态,以便在其上进行更改

    Externals sample