2010-01-21 257 views
10

我正在使用Subversion托管我自己的存储库以进行WordPress安装。我已经设置好了,这样所有的核心WordPress文件都在他们自己的目录中(称为wordpress),并设置为使用svn:externals链接到WordPress存储库。然后我有我自己的wp-content目录副本(位于wordpress目录之外),它不使用svn:externals。这一切工作正常。如何让SVN忽略外部定义中的目录

当我更新我的存储库时,WordPress内核得到更新。由于WordPress存储库包含它自己的wp-content目录,因此它也更新该目录。所以,我的文件结构最终看起来是这样的:

/ 
--/wordpress/ (wordpress repo) 
-----/wp-admin/ 
-----/wp-content/ 
--/wp-content/ (my local repo) 

我最终具有的wp-content文件夹的两个不同版本(一个从我的回购和一个从WordPress回购)。我不想从WordPress的回购(或至少不是在那个位置)。有没有办法让我设置svn忽略wordpress/wp-content目录,同时仍然使用外部定义?

+0

我不知道,但我想你可以尝试在根目录下设置一个'svn:ignore'属性,看看会发生什么。不过,这很可能不起作用。 – 2010-01-21 21:02:09

+0

这似乎并不奏效。只要我更新我的工作副本,它会再次下载wp-content文件。 – NerdStarGamer 2010-01-21 21:41:28

+0

我稍微晚了一点 - 但我不认为它有一个问题有重复的WP - 内容。假设你已经将'WP_CONTENT_DIR'定义为'define('WP_CONTENT_DIR',dirname(__FILE__)。'/ wp-content');'然后WordPress将忽略它自己的wp-content目录。 – icc97 2014-04-09 12:56:16

回答

10

你真的要问的是’是,“你能指定--depthsvn:externals ”答案是否定的。 Externals目前在指定的目录上完全递归。

Issue 3216请求此功能,但它不会’看起来像它’即将到来的任何时间。

+0

嗯,好的。我想你不能做我想要的,但我希望我错过了一些东西。谢谢。 – NerdStarGamer 2010-01-22 17:40:34

0

您可以sparse directories(又称浅检出)做到这一点。我不是100%肯定它使用外部时,但我不明白为什么它不会。

+1

我不认为稀疏目录是我想要的。我希望能够将我的svn repo设置为始终忽略此特定文件(在外部定义内),然后将其忽略。我不想每次改变时都要输入额外的东西。 – NerdStarGamer 2010-01-21 21:43:02

2

您可以为引用的存储库中的每个子文件夹创建单独的外部文件。因此,如果您的外部对于项目A,B和C的回购,并且您只需要A和B,则可以分别为A和B的子文件夹分别创建两个独立的外部参照。

目前我正在做一个项目,但如果你真的对外部进行编辑并提交它们,你可能会遇到问题,因为两个单独的外部变化不能以原子方式提交。即使两个外部实际指向同一个存储库,这个问题仍然存在,这是有道理的,但在使用这种技术时很重要。

另外,如果您要对第二个存储库负责,则可以选择将测试,文档和其他相关文件夹放入另一个具有外部源代码的独立存储库中,以便将它们与主代码存储库分开。这样,由于代码依赖性,这些文件夹在制作外部引用时不会被拉入。

-1

如果您尝试删除本地wp-content目录,但通过SVN执行操作,会发生什么情况?即。

svn rm /wordpress/wp-content 

这样SVN应该记住你的变化,我想你是不是推的东西WordPress的回购,所以您不必担心不小心commiting它。

+1

这不起作用。 'svn up'会带回已删除的文件夹 – user1406062 2013-05-16 14:35:34