2011-12-15 140 views
0

我已经使用从http://codex.wordpress.org/Using_Subversion和其他这样的wordpress codex站点搜集到的信息设置了一个WordPress站点。SVN回购SVN回购?

我注意到,虽然设置这个askimet源是从外部存储库复制。

这很容易吗?我想要的是为我的网站提供一个单独的存储库,该存储库导入其他回购站,例如Wordpress回购库和我为自定义插件和各种类型设置的任何其他回购站。

在我的仓库,我不希望有完整的WordPress的来源,我希望能够在WordPress的回购链接到它,所以,当我checkout回购它还会将所有的后备箱Wordpress文件。

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

  1. 结帐/从WordPress的SVN回购我的WordPress回购
  2. 结帐/更新WordPress的更新所有的自定义文件
  3. 结帐/更新任何自定义插件回购我已经添加。

某些目录将被共享。例如在Wordpress存储库的根目录中,我希望能够在我的站点存储库(wp-config.php)中有一个文件。

可以这样做,如果是的话,我该怎么做呢?

谢谢。

+2

听起来像你正在寻找svn:externals属性? – Corbin 2011-12-15 11:20:16

回答

4

您可以使用svn:externals属性。该属性值中的每一行都给出一个URL和一个目录; SVN客户端会将URL中的存储库检出到指定的目录中。示例:

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

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

+0

可以使用`http://foo.bar/svn/repo .`吗? IE浏览器进入当前目录? – 2011-12-15 11:31:58

1

要添加svn:externals属性请使用svn:propedit (pe)svn propset (ps)关于您要检出其他分支的目录。

如:

  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 
    

您还可以指定分支的特定版本,所以外部分支将被冻结,那个版本(如如果你知道它是稳定的)。要做到这一点,添加@REV到URL的末尾:

$ hxxp://plugin2site/svn/repo/[email protected] another_plugin 

可以使用svn propset代替svn propedit,但要小心,它会在SVN覆盖所有现有数据:externals属性:

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

欲了解更多信息,请参阅SVN handbook中的以下章节。

+0

感谢您的简洁和描述性的答案。但是,如果我从wordpress拥有的repo签出(co),那么svn:externals属性将不会针对回购保存,所以我将无法使用相同的svn:externals签出其他任何地方。我需要我自己的存储库,我可以提交并访问以使用svn:externals。在这种情况下,我可以使用svn:externals将wordpress repo导出到我的根文件夹中?谢谢 – 2011-12-16 09:53:55