2

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

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

我最初的倾向是尝试仅对我的主题信息进行 SCM,因为这确实是我“拥有”的唯一东西,而其他所有东西实际上只是我平台的一部分(实际上与 Apache 或 PHP 没有什么不同)。然而,这就是我的理解崩溃的地方。我怎样才能有选择地只选择 SCM 目录结构的一部分,我怎样才能维护我正在使用的 Wordpress 的配置?

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

4

4 回答 4

4

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

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

当你工作和做出改变时,提交它们。

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

要在您的生产站点上部署,您可以执行 svn 导出,或定期检出到 web 目录。如果您进行结帐,请确保仅在准备好部署时进行更新。

于 2008-09-23T00:45:20.733 回答
3

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

以正确的方式安装 WordPress

另请查看 svn:externals 以获取插件更新:

使用 svn:externals 安装 WordPress 插件

于 2009-02-17T16:41:13.340 回答
1

我认为升级部分甚至可以比这更容易一些;我使用 2.5 和 2.6 的最新版本以及 WP 的前沿主干修订版来执行此操作。

由于 Wordpress 将他们所有的东西都作为颠覆存储库提供,因此获取稳定标签的当前版本就像制作博客目录一样简单,然后

# 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 提到的 但是,我认为这并不能回答您的实际问题,我将其解释为“如何在能够升级 Wordpress 的同时将我的自定义内容保留在 SCM 中”。您对要添加的目录的直觉几乎是目标(您自己的个人博客的东西 - 主题,pplugins - 将在 wp-content 中,因此您只需要将其放入 subversion 中)但我对 subversion 不够精通告诉您如何将目录放入您自己的存储库,同时仍然能够依赖 Wordpress 的存储库进行升级。我网站上这些文件的“SCM”是 wp-content 目录的服务器外副本。

也许从这个角度来看,gregmac 的答案对你更有效。

于 2008-09-23T01:05:54.710 回答
1

我最初的倾向是尝试仅对我的主题信息进行 SCM,因为这确实是我“拥有”的唯一东西,而其他所有东西实际上只是我平台的一部分(实际上与 Apache 或 PHP 没有什么不同)。然而,这就是我的理解崩溃的地方。我怎样才能有选择地只选择 SCM 目录结构的一部分,我怎样才能维护我正在使用的 Wordpress 的配置?

这正是我对博客进行版本控制的方式。我发现它很好用。通常,如果您正在编辑 WordPress 的文件,那么您做错了,并且在升级时会陷入困境。

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

于 2008-09-23T04:11:56.290 回答