我有一個SVN存儲庫在我的Windows 2008服務器上運行。它現在有2個應用程序,讓我們稱他們爲App1和App2。我想將應用程序的提交文件複製到服務器上的另一個地方,每個應用程序一個。我想在提交後這麼做,所以我認爲post-commit鉤子是可以使用的鉤子。SVN鉤子複製提交的文件和文件夾?
如何知道哪個應用程序獲得了新文件以及複製命令將如何顯示?例如,App1的文件必須轉到c:\ app1,App2的文件轉到c:\ app2。
感謝您的幫助:)。
我有一個SVN存儲庫在我的Windows 2008服務器上運行。它現在有2個應用程序,讓我們稱他們爲App1和App2。我想將應用程序的提交文件複製到服務器上的另一個地方,每個應用程序一個。我想在提交後這麼做,所以我認爲post-commit鉤子是可以使用的鉤子。SVN鉤子複製提交的文件和文件夾?
如何知道哪個應用程序獲得了新文件以及複製命令將如何顯示?例如,App1的文件必須轉到c:\ app1,App2的文件轉到c:\ app2。
感謝您的幫助:)。
最好的辦法是在服務器上檢查一下您的存儲庫的工作副本,並在post-commit
中正確提及,只需在檢出的工作副本上執行svn update
即可。
後提交確實是一個使用。
如果我們看一下對svnnotify的例子..
#!/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>
貌似$ 1是回購路徑和$ 2是轉..所以,你應該能夠只是做一個正則表達式對$ 1測試如果它在你感興趣的兩個路徑之一,並採取相應的行動(或沒有)
你能告訴我正則表達式的東西看起來像iyo嗎? – EOB 2012-01-06 11:33:24
#!/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
我需要Windows版本,它適用於Windows嗎? – EOB 2012-01-06 11:39:16
cygwin?否則 - 抓住PowerShell手冊並開始讀入。 :p – synthesizerpatel 2012-01-06 11:40:08
嗯,聽起來像它可以工作。你可以發佈post-commit.bat文件的內容嗎? – EOB 2012-01-06 08:18:39
@EOB只需cd路徑和svn更新。 – manojlds 2012-01-06 08:23:14
到什麼路徑?例如,簽出的app1的路徑?我如何知道路徑?那是1美元嗎? – EOB 2012-01-06 08:26:46