将现有文件夹共享到存储库中的多个位置

时间:2015-02-05 11:59:36

标签: wordpress svn plugins

我正在开发几个WordPress网站,每个网站都使用我正在开发的几个插件。我希望能够更新任何网站内的插件,并在其他网站上显示更新。我也使用Tortoise SVN作为客户端。

在存储库中保留现有插件文件夹的一个副本的最佳方法是什么?该文件夹在多个网站上使用?

1 个答案:

答案 0 :(得分:0)

您可以使用svn:externals执行此操作。

根据您对问题的评论,假设您有两个项目A和B,共享插件F。

将共享插件F放入存储库中自己的文件夹中,与A和B分开。例如,它可以放在{repository root}/Plugins/F/trunk

在A和B中的某个文件夹上,您可以创建一个名为svn:externals的特殊属性,其中包含指向F的指针,以及将F放置在项目工作副本中的位置。例如,您可以在A / trunk / plugins文件夹上定义svn:externals,如下所示:

^/Plugins/F/trunk@123 F

当您签出或更新项目A的工作副本时,SVN现在将自动为A / trunk / plugins中的插件F创建新的工作副本。请注意我在上面使用@123。这意味着插件F的这个新工作副本将从版本123中提取。您可以不使用此修订说明符[1],但不应该。如果您确实不使用修订说明符,那么在对F进行更改后,您只需svn update每个项目,并立即看到这些更改。但是,您很难重新构建项目的过去版本,因为即使更新到项目的旧版本,也会始终引入该插件的最新版本。此外,如果您对插件进行了不兼容的更改,则在更新它们时将中断所有其他项目。通过添加修订说明符,您可以有意识地决定何时是插入最新版本插件的好时机。

[1]这在技术上被称为" peg revision",并且修订说明符略有不同,但您通常不需要关心svn:externals definitions中的这个细节。 / p>