Subversion のマルチチェックアウトのコミット後フック?

Subversion のマルチチェックアウトのコミット後フック?

タイトルは奇妙に聞こえるかもしれませんが、私は次のことを達成しようとしています。

SVN リポジトリの場所: /home/flx/svn/flxdev SVN リポジトリ「flxdev」の構造:

 + Project1
 ++ files
 + Project2
 + Project3
 + Project4

コミットを実行すると、もう一方の側で自動的にチェックアウトするコミット後フックを設定しようとしています。

コミット後のドキュメントには、次の内容が明示的に記載されています。

# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit.  Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
#   [1] REPOS-PATH   (the path to this repository)
#   [2] REV          (the number of the revision just committed)

そこで、テストするために次のコマンドを作成しました。

REPOS="$1"
REV="$2"
echo "Updated project $REPOS to $REV"

しかし、例えばProject1のファイルを編集すると、次のように出力されます。「プロジェクト /home/flx/svn/flxdev を 1016 に更新しました」

私はこうしたいと思っています:「プロジェクト Project1 を 1016 に更新しました」

この変数を使用すると、コミット後にプロジェクトごとに異なるアクションを実行するように指定できます。プロジェクト パラメータを指定するにはどうすればよいですか?

ありがとう!

デニス

答え1

使用svnlook

手っ取り早く言えば、次のようなことを試してみることです:

REPOS="$1"
REV="$2"
CHANGED_DIRS="`/usr/bin/svnlook -r $REV dirs-changed $REPOS`"

echo "Updated paths $CHANGED_DIRS in revision $REV"

を実行してみてくださいsvnlook help。使用できるさまざまなコマンドや取得できる情報が一覧表示されます。

関連情報