2011-03-02 98 views
0

我在網上查看了很多很多文章,但沒有一篇似乎得出答案。 我運行一個設置,其中:Dreamhost顛覆後提交掛鉤不能正常工作

我有一個網站,將運行的主幹文件副本 這個網站有它 有關我wampserver/MAMP的本地測試環境在我的Mac,烏龜SVN的SVN文件夾在我的電腦上

所以我有一個存儲庫的結帳,我做了我的更改,當我有一個版本 - 我提交的文件。

我想就提交到svn庫的自動更新 - 這個維基解釋如何做到這一點:http://wiki.dreamhost.com/Subversion#Automatic_Post-commit_Checkout

不幸的是充滿了問題。一旦我有我的CGI文件夾和我更新後的提交鉤sortedm我接收退出代碼255.我轉換後的cgi和鉤到unix並重新上傳我有一個退出代碼爲1.

我再次改變了chmod,並且我沒有收到任何錯誤。 不幸的是,dreamhost不會將這些文件更新到我的現場網站。

我的鉤子文件看起來像這樣:

後承諾:

 #!/bin/bash 
     wget --http-user=username --http-passwd=password -qO - http://website.com/cgi-bin/pri/do_update.cgi  

和我do_update.cgi: #/ bin/sh的

# disable filename globbing 
    set -f 

    echo "Content-type: text/plain; charset=iso-8859-1" 
    echo 

    echo /usr/bin/svn update /home/username/website.com 

谷歌返回很多很多的網頁有了這個問題,除非我突然學會如何編譯C程序,否則我無法做到這一點。

任何幫助表示讚賞,並會終於畫上了很好的回答了網上其他人的...

回答

0

這是我做的,它不是一個Linux機器上,但它似乎對工作我只需在提交後直接調用svn即可。如果你有一個大的出口,它會延遲你的簽入,但是非常簡單。對於linux機器應該非常相似。

掛鉤:

svn.exe export https://myhostname/svn/project/trunk %WEBSITEDIR%\httpdocs\store --quiet --non-interactive --force --username user --password pass 
1

喜歡自己的麻煩後,我終於得到了SVN post-commit鉤子Dreamhost上工作。我的兩個文件都與你的文件完全相同,除非它看起來像在你的CGI腳本中有一個額外的'echo'。

我的CGI文件的權限爲:-rwxr-XR-X(這是755,如果我沒記錯的話)

不要忘記的.htaccess/.htpasswd則設置爲你的/ cgi-bin目錄/目錄:

下面是我的/ CGI-bin /目錄下的.htaccess的樣子:

AuthName "Dialog prompt" 

AuthType Basic 

AuthUserFile /home/username/x.com/cgi-bin/.htpasswd 

Require valid-user 

請記住,用戶名/密碼爲您的CGI腳本文件 'wget的' 是不是你的svn用戶/ pass,而是用戶/通過你設置f或者通過特定的cgi-bin目錄。htaccess文件(也不是你的DH用戶名/密碼)。我不確定svn用戶/密碼的起始位置,也許只在最初的結帳時(通過bash)。

昨晚我正在研究SO,以瞭解如何「重置」我的SVN(它停止運行提交後的掛鉤,但沒有報告任何錯誤)。對於修復這個問題,我不得不通過bash登錄到DH,然後手動運行一個svn up。在我的X.com站點目錄中運行該命令後,SVN最終報告了一個錯誤('文件已經存在',並且svn沒有覆蓋它)。爲了彌補這一點,我只是重新做我的更新命令:svn up --force。 Whammy !,我的svn在我的web目錄中完成了一個完整的更新,最後我在我的web服務器上安裝了最新的文件。呼!

如果我記得正確(這個post-commit-hook可以正常工作好幾個月),我不得不通過bash將svn checkout加入我的web目錄。一旦初始結賬完成,掛鉤的svn update工作正常。 (僅供參考,我用烏龜代表所有通常的提交)

祝大家好運,試圖在DH上運行post-commit-hooks。它可能很難設置,但最終,完全值得!

:-P