我曾经有过这个提交后挂钩来更新我服务器上的工作副本:
#!/bin/sh
cd /var/www/MyWebAppStaging
svn up >> /var/log/svn/MyWebApp.log
里面/ var / www / MyWebAppStaging显然是我项目的工作副本
但是现在我的存储库中有几个项目。我的存储库位于/ var / svn / repository下,有两个项目:
MyWebApp --> trunk
MyMobileWebApp --> trunk
我在/ var / www
中有以下文件夹/var/www
|-->MyWebApp
|-->MyWebAppStating
|-->MyMobileWebApp
|-->MyMobileWeAppStaging
我有人向MyWebApp-Project提交代码我希望我的post-commit更新/ var / www / MyWebAppStaging下的工作副本。如果有人将代码提交给MyMobileApp-Project,我希望我的提交后更新/ var / www / MyMobileAppStaging
下的工作副本那么如何更改我的提交后,它会根据提交所属的项目更新正确的工作副本?
答案 0 :(得分:2)
您可以使用svnlook查找提交中已修改的文件。为此,人们通常在post-commit钩子中使用Perl或Python,但是这样的东西可能有效(未经测试):
if (svnlook changed -r $2 $1|grep MyWebApp)
then
(cd /var/www/MyWebAppStaging; svn up >> /var/log/svn/MyWebApp.log)
fi
if (svnlook changed -r $2 $1|grep MyMobileApp)
then
(cd /var/www/MyMobileAppStaging; svn up >> /var/log/svn/MyWebApp.log)
fi