12

我正在使用 subversion 来托管我自己的 WordPress 安装存储库。我已经设置好所有核心 WordPress 文件都在它们自己的目录(称为 wordpress)中,并设置为使用 svn:externals 链接到 WordPress 存储库。然后我有自己的 wp-content 目录副本(位于 wordpress 目录之外),它不使用 svn:externals。这一切都很好。

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

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

我最终有两个不同版本的 wp-content 文件夹(一个来自我的仓库,一个来自 WordPress 仓库)。我不想要来自 WordPress 存储库的那个(或者至少不在那个位置)。有没有办法让我设置 svn 在仍然使用外部定义的同时忽略 wordpress/wp-content 目录?

4

4 回答 4

11

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

问题 3216请求此功能,但它看起来不会很快出现。

于 2010-01-22T01:39:36.223 回答
2

您可以为引用的存储库中的每个子文件夹制作单独的外部文件。因此,如果您的外部是包含项目 A、B 和 C 的存储库,并且您只需要 A 和 B,那么您可以分别对 A 和 B 的子文件夹进行两个单独的外部引用。

目前我正在使用一个项目来执行此操作,但如果您实际上是在对外部进行编辑并提交它们,您可能会遇到问题,因为两个单独的外部中的更改无法以原子方式提交。即使两个外部对象实际上指向同一个存储库,这个问题仍然存在,这是有道理的,但在使用此技术时要注意这一点。

此外,如果您负责第二个存储库,一种选择是将测试、文档和其他相关文件夹放入另一个单独的存储库,其中包含源代码的外部,以便将它们与主代码存储库分开。这样,由于代码依赖关系,在进行外部引用时这些文件夹不会被拉入。

于 2010-04-05T02:20:56.583 回答
0

您可以使用稀疏目录(也称为浅签出)来执行此操作。我不是 100% 确定它在使用外部时有效,但我不明白为什么它不会。

于 2010-01-21T21:01:17.533 回答
-1

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

svn rm /wordpress/wp-content

这样 SVN 应该记住您的更改,并且我假设您没有将内容推送到 Wordpress 存储库,因此您不必担心意外提交它。

于 2010-07-06T21:38:31.747 回答