SVN回购中的SVN回购?

时间:2011-12-15 11:19:04

标签: wordpress svn

我使用从http://codex.wordpress.org/Using_Subversion和其他此类wordpress codex网站收集的信息设置了一个wordpress网站。

我注意到在设置它时,会从外部存储库中复制askimet源。

这很容易吗?我想要的是为我的网站建立一个单独的存储库,它导入其他存储库,例如Wordpress存储库以及我为自定义插件和各种插件设置的任何其他存储库。

在我的存储库中我不想拥有完整的Wordpress源代码,我希望能够将Wordpress存储库链接到其中,这样当我checkout 我的主干 repo它还复制了所有的Wordpress文件。

所以基本上我会有这样的结构:

  1. 检查/更新我的Wordpress仓库中的所有自定义文件
  2. 从Wordpress SVN repo签出/更新Wordpress
  3. 检查/更新我添加的任何自定义插件回购。
  4. 将共享一些目录。例如,在Wordpress存储库的根目录中,我希望能够在我的站点存储库(wp-config.php)中拥有一个文件。

    可以这样做,如果是这样,我该如何去做呢?

    谢谢。

2 个答案:

答案 0 :(得分:4)

您可以使用svn:externals属性。此属性值中的每一行都给出一个URL和一个目录; SVN客户端将检查URL中的存储库到命名目录中。例如:

$ svn propget svn:externals .
http://foo.bar/svn/repo wordpress

将在当前目录中生成一个名为wordpress的目录。

答案 1 :(得分:1)

要在您要检查其他分支的目录中添加svn:externals属性使用svn:propedit (pe)svn propset (ps)

E.g:

  1. 签出基本分支:

    $ svn co hxxp://wordpress/svn/repo/trunk siteroot
    
  2. 编辑svn:externals属性:

    $ svn pe svn:externals
    
  3. 将打开编辑器,您可以在其中添加一个或多个外部分支/存储库:

    $ hxxp://wordpress/svn/repo/plugin wordpress_plugin
    $ hxxp://plugin2site/svn/repo/trunk another_plugin
    
  4. 保存并提交。

    $ svn ci
    
  5. 最后,您将获得以下工作副本结构:

    siteroot/
    siteroot/wordpress_plugin
    siteroot/another_plugin
    
  6. 您还可以指定分支的特定修订版,因此外部分支将被冻结到该修订版(例如,如果您知道它是稳定的)。为此,请将@REV添加到网址的末尾:

    $ hxxp://plugin2site/svn/repo/trunk@123 another_plugin
    

    您可以使用svn propset代替svn propedit,但请注意,它会覆盖svn:externals属性中的所有现有数据:

    $ svn ps hxxp://plugin2site/svn/repo/trunk another_plugin .
    

    有关详细信息,请参阅SVN handbook

    中的以下章节