【问题标题】:What's the correct way to deploy a git repo to Wordpress SVN?将 git repo 部署到 Wordpress SVN 的正确方法是什么?
【发布时间】:2012-09-20 20:08:46
【问题描述】:

我见过一百种不同的过时的临时脚本,它们要么使用 git-svn,要么在幕后完成所有艰苦的工作,但我仍然觉得我没有找到正确的方法来做到这一点。

我有一个本地 git 存储库,我想将它部署到我的 Wordpress 托管的 SVN 存储库。理想的功能是我在本地开发,准备好后推送到 github,然后将我所做的所有更改发送到 wordpress 存储库。

我的远程 wordpress 存储库将相应更新,删除由于重构和相应标记分支而可能不再存在的文件和文件夹。我的 github repo 应该像往常一样,标记传入的版本。

https://github.com/deanc/wordpress-plugin-git-svn

http://danielbachhuber.com/2010/09/29/how-to-properly-use-git-with-wordpress-org-subversion/

【问题讨论】:

    标签: wordpress git svn deployment git-svn


    【解决方案1】:

    嗯,没有一种好的方法可以做到这一点。不过,这里有一个建议。

    您可以做的是在公共目录之外的服务器上创建一个裸存储库。此存储库会将更改推送到您的 SVN 存储库,并且就像您的 SVN 存储库的看门人一样。您的网站已经运行了一个 SVN 存储库。

    $ cd; mkdir site_bare.git; cd site_bare.git
    $ git --bare init
    

    您可以在这个裸存储库的 post-commit 挂钩上使用 shell 脚本,例如 https://github.com/deanc/wordpress-plugin-git-svn

    #!/bin/sh
    
    echo
    echo "**** Pulling changes into the SVN repository [Hub's post-update hook]"
    echo
    
    cd $HOME/www || exit
    unset GIT_DIR
    
    # Change to SVN dir and commit changes
    echo "Changing directory to SVN and committing to trunk"
    cd $SVNPATH/trunk
    svn commit --username=$SVNUSER -m "$COMMITMSG"
    
    # Create a new tag and commit it :)
    echo "Creating new SVN tag"
    cd $SVNPATH
    svn copy trunk/ tags/$NEWVERSION1
    svn commit --username=$SVNUSER -m "Updating tag to $NEWVERSION1"
    
    # Update the version number
    echo "Updating version number for future executions"
    cd $CURRENTDIR
    echo $NEWVERSION1 > version.txt
    
    exec git-update-server-info
    

    我是从https://github.com/deanc/wordpress-plugin-git-svn/blob/master/deploy.sh 获取的,但您可以直接获取 git 提交消息,而不是要求提供。

    在您的本地计算机上,将裸存储库添加为远程并将更改推送到它:

    git remote add bare <bare-repository-url>
    

    它的工作原理是,您编写一些代码并将其推送到裸存储库,该存储库使用其更新后挂钩将更改推送到 SVN 存储库。

    您必须修改上面的代码才能推送更改。我刚刚给出了一个参考。

    【讨论】:

    • 我希望有一些不那么定制的东西,也许使用 capistrano?虽然我也不熟悉它是否是正确的答案。感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多