如何将SCM与WordPress等PHP应用程序一起使用?

时间:2008-09-22 23:33:41

标签: wordpress version-control

我使用Wordpress运行我的博客,最近所有人都成为SCM的信徒。我真的想把我的网站变成颠覆(这就是我现在正在使用的,也许git会在晚些时候出现)但是我想不出正确的做法。基本上,我的存储库目前设置有“实现”目录和“资源”目录,实现包含最终将发布到实际站点的内容。我希望能够在本地预览我的网站,而不必出于显而易见的原因上传到服务器。但是,要做到这一点,我发现我需要在本地安装Wordpress(而不仅仅是将远程站点复制到我的本地盒子)。这是在Wordpress.org上告诉我的。

这带来了能够在安装时使用SCM的问题,因为我需要不时地升级我的本地站点但这会产生与subversion的不一致,因为它无法跟踪正在发生的事情,因为外部系统正在搞乱用它的存储库结构。那是行不通的。

我最初的倾向是尝试SCM我的主题信息,因为这是我所拥有的唯一的东西,而其他一切实际上只是我的平台的一部分(与Apache或PHP没有什么不同,真的)。然而,这就是我理解失败的地方。我如何有选择地SCM只是该目录结构的一部分,以及如何维护我所在的Wordpress配置?

无论如何,我确信其他人已经解决了这个问题,解决方案可能适用于许多与Wordpress类似的应用程序(Drupal,phpBB,phpMyAdmin等)。那么,你是怎么做到的?

4 个答案:

答案 0 :(得分:3)

实际上并不难,但我会在这里将其分解为一些建议。您所描述的内容或多或少是“供应商丢弃”目录。这基本上是您在SVN中维护代码的地方,但在内容更新时将内容替换为内容。

您应该从一个空目录开始。设置SVN存储库,然后在空目录中执行SVN签出(它仍然是空的,除了它将添加一个隐藏的.svn目录)。接下来,在这里正常安装wordpress,然后将其文件添加到svn。您可以只是“svn add *”但要小心,并删除任何您不想要版本化的内容(uploads / temp / cache目录,如果适用)。如果您愿意,还可以使用svn:ignore属性告诉它忽略某些目录或文件类型。运行“svn stat”以显示要检入的内容等,一旦一切正常,提交它(svn commit)并从那里开始工作。现在你在SVN中有一个wordpress的基本安装。

当您工作并进行更改时,请提交它们。

到了升级的时候,只需将wordpress替换为你拥有的内容。确保在替换目录时,替换内容,而不是整个目录本身。你不想丢失每个文件夹中隐藏的.svn文件夹,因为这会使subversion失败。做一个svn stat和/或svn diff来弄清楚改变了什么,如果有的话,主要是新添加的内容。此时,您可以再次提交。

要在您的生产站点上部署,您可以执行svn导出,或定期签入Web目录。如果您结帐,请务必仅在准备好部署时进行更新。

答案 1 :(得分:2)

这是我正在测试的方法。设置需要一些时间,但您应该(理论上)进行面向未来的安装:

Installing WordPress The Right Way

另请参阅svn:externals以获取插件更新:

Use svn:externals to install WordPress plugins

答案 2 :(得分:1)

我认为升级部分甚至可以比这更容易;我使用2.5和2.6的最新版本,以及WP的前沿主干版本。

由于Wordpress提供了所有内容作为subversion存储库,因此获取稳定标记的当前版本就像创建博客目录一样简单

# svn co http://svn.automattic.com/wordpress/tags/2.6.2/ (replace the current rev here for the first check out).

升级可用时,只需导航到您的博客目录并运行

即可
#svn sw http://svn.automattic.com/wordpress/tags/2.6.3/ (or whatever wordpress rev you're updating to)

然后发布到您的生产网站只是一个导出,gregmac mentions 但是,我不认为这会回答您的实际问题,我将其解释为“如何在升级Wordpress的同时将自定义内容保留在SCM中”。关于哪些目录要解决的问题几乎都在目标上(你自己的个人博客的东西 - 主题,pplugins - 将在wp-content中,所以你只需要把它放到subversion中)但是我对subversion不够熟练告诉你如何将目录放入自己的存储库,同时仍然可以依赖Wordpress的repo进行升级。我网站上这些文件的“SCM”是wp-content目录的服务器外副本。

从这个角度来看,gregmac的答案对你来说效果更好。

答案 3 :(得分:1)

  

我最初的倾向是尝试SCM我的主题信息,因为这是我所拥有的唯一的东西,而其他一切实际上只是我的平台的一部分(与Apache或PHP没有什么不同,真的)。然而,这就是我理解失败的地方。我如何有选择地SCM只是该目录结构的一部分,以及如何维护我所在的Wordpress配置?

这正是我版本控制我的博客的方式。我发现它很棒。一般来说,如果您正在编辑WordPress的文件,那么您做错了,并且在升级时会遇到痛苦。

为了简化这一点,我使用了TortoiseSVN。我在Windows资源管理器中导航到我的/ wp-content / themes /目录,右键单击我的自定义主题目录,然后从上下文菜单中选择 import 。导入所有现有文件后,我在该目录上执行了 checkout ,一切都已设置完毕。