Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN用于复杂Wordpress/bbPress安装的自定义部分:您认为这种方法如何?_Svn_Wordpress - Fatal编程技术网

SVN用于复杂Wordpress/bbPress安装的自定义部分:您认为这种方法如何?

SVN用于复杂Wordpress/bbPress安装的自定义部分:您认为这种方法如何?,svn,wordpress,Svn,Wordpress,我有一个相当复杂的WordPress+bbPress安装,我想处理subversion中所有自定义代码的版本控制。以下是我已经确定的方法,我将非常感谢您的意见/批评。有更好的方法吗 虽然我的情况涉及WordPress,但我是用一般术语描述的,这个问题适用于任何数量的其他框架,在这些框架中,您最终会在一个更大的系统中使用大量自定义代码 已部署站点的层次结构(位于html根目录下)如下所示(为了便于说明,有些简化): 由于部署层次结构中的“主题”和“插件”除了我的自定义代码之外还包含文件和文件夹,因

我有一个相当复杂的WordPress+bbPress安装,我想处理subversion中所有自定义代码的版本控制。以下是我已经确定的方法,我将非常感谢您的意见/批评。有更好的方法吗

虽然我的情况涉及WordPress,但我是用一般术语描述的,这个问题适用于任何数量的其他框架,在这些框架中,您最终会在一个更大的系统中使用大量自定义代码

已部署站点的层次结构(位于html根目录下)如下所示(为了便于说明,有些简化):

由于部署层次结构中的“主题”和“插件”除了我的自定义代码之外还包含文件和文件夹,因此我将其他内容添加到这两个目录的ignore属性中

我在三个地方进行了更改:一台开发人员机器(大部分操作都发生在这里)、一台与我的生产环境几乎相同的登台/测试服务器,以及生产服务器(只是一些小的更改)。这三个位置的初始设置有点耗时,因为我必须将主干下面的每个目录签出到层次结构中正确的位置。但这是一次性的麻烦

我编写了几个简单的shell脚本,一旦这些都设置好,就可以自动执行svn任务。例如:
svn commit.sh
(从Wordpress安装的根目录运行)

我还检查了我的开发机器上的一个单独的工作副本,它纯粹是我的自定义代码,这样我就可以使用版本进行拖放式回购维护

那么,你认为呢?有没有更简单的方法?我还考虑到:

  • 将整个混乱置于版本控制之下。我认为当我处理其他人重构代码时,会产生太多的回购管理开销

  • 将整个层次结构置于版本控制之下,并设置“忽略所有内容,但我的代码除外”。同样,维护ignore属性会带来太多持续的管理开销


  • 最后,在我的生产站点中挂着.svn文件夹是否存在安全问题?

    我喜欢你的方法。你只会得到版本控制下的东西,将要改变,如插件和主题和您的自定义目录。我认为将所有内容置于版本控制之下是不必要的,因为您也必须处理WordPress的更改

    我不知道您的开发环境是如何设置的,但是您可以使用WordPress/bbPress设置一个项目,并将代码签出到项目的文件夹中,而忽略其余文件夹。但是你这样做,我觉得很好,没有太多开销


    顺便说一句,使用
    svn export
    ,您可以从repo获取所有文件,而不需要.svn目录。您应该在生产现场使用此突击队。或者签出并阻止访问web服务器中的.svn目录。

    您计划如何处理wordpress更改?如果您升级wordpress,并且您的一些自定义代码需要新功能,该怎么办?那么对于站点运行至关重要的插件呢?@blockhead,我可能不理解你的观点,但我可以像以前一样处理WP的变化。也就是说,升级(通过安装新文件在的仪表板中自动或手动进行)。对于不是我自己的插件也是如此。所有这些都可以像以前一样改变。SVN repo中只有我的自定义代码,但上面的方案对部署中的其他内容没有任何限制。如果自定义wordpress代码与wordpress本身不同步,那么自定义wordpress代码有什么好处?如果您的repo中没有包含wordpress,当您部署到生产环境中,或者有人将您的更改引入到他们的开发服务器中时,您如何对wordpress进行跟踪?好的,我明白您现在的意思了。是的,你是对的,我必须单独维护WP和自定义代码之间的依赖关系。我的自定义代码的任何版本都绑定到特定版本的WP。但这种依赖性在回购协议中没有体现,理想情况下应该如此。要点已被采纳-谢谢。许多人在核心部分使用wordpress之类的东西时似乎遇到了问题:)这可能读起来像是我最近在这里和这里写的关于这些问题的文章,可能有点冗长,但可能会有所帮助。一句话:把它全部放到svn中。对修改的第三方代码使用供应商分支。
    CUSTOM-directory
    wp-admin
    wp-content
      - <other directories>
      - themes
        - <CUSTOM theme directories>
        - <other theme directories>
      - plugins
        - <CUSTOM plugin files & directories>
        - <other plugin files & directories>
    wp-includes
    <other files>
    
    website
      - trunk
        - CUSTOM-directory
        - themes
        - plugins
      - branches
      - tags
    
    #!/bin/sh
    svn commit CUSTOM-directory "$@"
    svn commit wp-content/plugins "$@"
    svn commit wp-content/themes "$@"