2012-01-06 12 views
1

私はWindows 2008サーバ上でSVNリポジトリを実行しています。今は2つのアプリがあり、App1とApp2と呼ぶことができます。私は、アプリケーションのコミットされたファイルをサーバー上の別の場所、つまり各アプリケーションごとにコピーしたいと思います。私はコミット後にやりたかったので、コミット後のフックが使えると思いますか?コミットされたファイルとフォルダをコピーするためのSVNフックですか?

どのアプリケーションが新しいファイルを取得したか、どのようにコピーコマンドが表示されるかをどのように知っていますか? App1のファイルはc:\ app1に、App2のファイルはc:¥app2に移動する必要があります。

ありがとうございました:)

答えて

2

ベストプラクティスはサーバー上のあるリポジトリの作業コピーをチェックアウト済みの作業コピーに入れて、を実行するだけです。

+0

うーん、それは仕事ができるように、聞こえます。 post-commit.batファイルの内容を投稿できますか? – EOB

+0

@EOBちょうどパスとsvn updateにcdしてください。 – manojlds

+0

どのようなパスですか?例えばチェックアウトされたapp1のパス?どのように私はパスを知っていますか?それは$ 1ですか? – EOB

1

実際にコミットするのが実際に使用されます。

我々はsvnnotifyのための例を見れば..

$ 1はレポ・パスで、$ 2はREV ..ですので、あなたがテストに$ 1に対する正規表現を行うだけのことができるはずのよう
#!/bin/sh 

REPOS="$1" 
REV="$2" 

/usr/local/bin/svnnotify     \ 
    --repos-path "$REPOS"    \ 
    --revision  "$REV"     \ 
    --subject-cx       \ 
    --with-diff        \ 
    --handler  HTML::ColorDiff   \ 
    --to   <your e-mail address> \ 
    --from   <from e-mail address> 

が見えますそれは2つのパスのいずれかにいた場合、あなたは興味を持っているし、それに応じて行動を取る(または、しない)から抜粋

Subversion Post-Commit Hooks 101

+0

正規表現のものがどのように見えるか教えていただけますか? – EOB

0
#!/bin/bash 

dir='/path/to/something/special' 
dir='/path/to/other/thing' 


if [[ $dir =~ "something" ]]; then 
    echo "something dir" 
fi 

if [[ $dir =~ "other" ]]; then 
    echo "other dir" 
fi 
+0

私はそれがWindowsのために必要です、それはWindowsのために働くでしょうか? – EOB

+0

cygwin?それ以外の場合は、PowerShellのマニュアルを入手して読み込みを開始してください。 :p – synthesizerpatel