2

サーバー上の作業コピーを更新するために、このポストコミットフックがありました。

#!/bin/sh
cd /var/www/MyWebAppStaging
svn up >> /var/log/svn/MyWebApp.log

内部 /var/www/MyWebAppStaging は明らかに私のプロジェクトの作業コピーでした

しかし、今ではリポジトリ内にいくつかのプロジェクトがあります。私のリポジトリは /var/svn/repository の下にあり、2 つのプロジェクトがあります。

MyWebApp --> trunk
MyMobileWebApp --> trunk

/var/www 内に次のフォルダーがあります

/var/www

 |-->MyWebApp

 |-->MyWebAppStating

 |-->MyMobileWebApp

 |-->MyMobileWeAppStaging

誰かがコードを MyWebApp-Project にコミットしました。ポストコミットで /var/www/MyWebAppStaging の下の作業コピーを更新したいと考えています。また、コードを MyMobileApp-Project にコミットする人がいる場合は、ポストコミットで /var/www/MyMobileAppStaging の下の作業コピーを更新したいと思います

では、コミットが属するプロジェクトに応じて正しい作業コピーを更新するように、ポストコミットを変更するにはどうすればよいでしょうか?

4

1 に答える 1

2

svnlook を使用して、コミットで変更されたファイルを見つけることができます。このために、人々は通常、コミット後のフックで 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
于 2010-12-19T20:15:14.143 に答える