什么';将git repo部署到Wordpress SVN的正确方法是什么?

什么';将git repo部署到Wordpress SVN的正确方法是什么?,wordpress,git,svn,deployment,git-svn,Wordpress,Git,Svn,Deployment,Git Svn,我见过一百种不同的过时的、临时的脚本,它们要么使用git svn,要么在幕后完成所有的艰苦工作,但我仍然觉得我没有找到正确的方法来实现这一点 我有一个本地git repo,我想部署到Wordpress托管的SVN repo。理想的功能是我在本地开发,准备好后推送到github,然后将我所做的所有更改发送到wordpress repo 我的远程wordpress repo将相应地更新,删除由于重构和相应地标记分支而可能不再存在的文件和文件夹。我的github repo应该像往常一样,标记传入的版本

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

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

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


好吧,没有一个好方法可以做到这一点。然而,这里有一个建议

您可以做的是在服务器上的公共目录之外创建一个裸存储库。该存储库将把更改推送到您的SVN存储库,就像您的SVN回购的守门人一样。您的网站已运行SVN存储库

$ cd; mkdir site_bare.git; cd site_bare.git
$ git --bare init
您可以使用shell脚本,类似于此裸存储库上的post-commit钩子

#!/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
我从中获取了这个消息,但是您可以直接获得git提交消息,而不是要求提交消息

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

git remote add bare <bare-repository-url>
git远程添加裸机
其工作原理是,编写一些代码并将其推送到裸存储库,裸存储库使用其更新后挂钩将更改推送到SVN repo


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

好吧,没有一个好方法可以做到这一点。然而,这里有一个建议

您可以做的是在服务器上的公共目录之外创建一个裸存储库。该存储库将把更改推送到您的SVN存储库,就像您的SVN回购的守门人一样。您的网站已运行SVN存储库

$ cd; mkdir site_bare.git; cd site_bare.git
$ git --bare init
您可以使用shell脚本,类似于此裸存储库上的post-commit钩子

#!/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
我从中获取了这个消息,但是您可以直接获得git提交消息,而不是要求提交消息

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

git remote add bare <bare-repository-url>
git远程添加裸机
其工作原理是,编写一些代码并将其推送到裸存储库,裸存储库使用其更新后挂钩将更改推送到SVN repo


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

我希望能有一些不太定制的东西,也许是使用capistrano?虽然我不知道这是否是正确的答案。谢谢你的回复!我希望能少一些定制,也许用capistrano?虽然我不知道这是否是正确的答案。谢谢你的回复!