使用Mercurial开发WordPress。整个树还是子存储库的集合?

使用Mercurial开发WordPress。整个树还是子存储库的集合?,wordpress,mercurial,wordpress-theming,mercurial-subrepos,Wordpress,Mercurial,Wordpress Theming,Mercurial Subrepos,我们打算使用Mercurial进行WordPress网站开发的版本控制 WordPress中的开发模型规定,开发通常发生在插件和主题的主根目录之外的几个子目录中,而主根目录可以通过WordPress版本更新进行更改,不需要进行版本控制 我的问题是,如果使用位于根目录下的存储库管理这种情况,最好使用hgignore从VC中删除WordPress主代码,只控制前面提到的子目录,或者在开发发生的目录中有两个子存储库和一个包装器父存储库将它们连接在一起 每种方法的优缺点以及对部署的影响是什么 使用第二种

我们打算使用Mercurial进行WordPress网站开发的版本控制

WordPress中的开发模型规定,开发通常发生在插件和主题的主根目录之外的几个子目录中,而主根目录可以通过WordPress版本更新进行更改,不需要进行版本控制

我的问题是,如果使用位于根目录下的存储库管理这种情况,最好使用hgignore从VC中删除WordPress主代码,只控制前面提到的子目录,或者在开发发生的目录中有两个子存储库和一个包装器父存储库将它们连接在一起

每种方法的优缺点以及对部署的影响是什么


使用第二种方法(子存储库),当您在新服务器上完成初始拉入时,是否会在WordPress树中的正确位置创建开发目录?

作为一般做法,我强烈建议仅对您要维护的源代码进行版本控制。使用Git,我以前为每个主题/插件创建了一个存储库,效果很好。除了父/子主题关系之外,WordPress主题或多或少是完全独立的。由于每个主题在逻辑上是独立的,所以将其作为独立的实体进行版本控制也是有意义的

在某个时候,你也很可能希望为一个主题推送更新,但不希望为其他主题推送更新。使用单独的存储库可以更轻松地签入所有不同主题的更改,但一次只发布一个主题的更改。虽然使用分支可以获得相同的结果,但如果有多个主题,则可能会变得非常复杂


当然,这在很大程度上取决于什么是舒适的,但根据我管理50多个主题的安装的经验,这正是最容易做到的

另一种可能性是将WordPress视为一种依赖关系(这是有意义的),并使用类似Composer的东西(这也可以成为构建新服务器过程的一部分)。遗憾的是,尽管它朝着正确的方向发展,但它仍然是。(顺便说一句,如果你想尝试将WordPress变成某种形式的应用程序,roots.io网站上的整个帖子绝对值得一看。)非常感谢Matt,这里有一些非常有用的提示。我发现了MarkJaquith的WordPress框架,但是,基本框架似乎是从那以后的一两个发展。谢谢你的回复。经过更多的研究,我找到了WordPress框架,它实现了您提到的许多想法。我也转向了Git,因为这似乎更符合将WordPress开发带入21世纪的主要推动者所使用的内容。我接受您的回答,但我也希望读者参考Matt Gibson的上述回答以及有关WordPress基础框架的信息。