2009-06-10 146 views
2

我目前正在與PHP項目合作伙伴合作。好的獨立svn客戶端

我們都直接編輯本地服務器(所有文件存儲在服務器上,它也運行WAMP堆棧)。 我正在尋找一個SVN客戶端,它將監視並保存對htdocs文件夾的所有更改,並通過Web更新遠程SVN存儲庫。

如果我可以通過網絡界面操縱SVN客戶端,那將是一筆巨大的獎勵。

例如,假設我將file1.php保存到服務器。它會在svn網站上更新file1.php。 如果我突然發現我對該文件的最新修訂版本不好,我可能會轉到服務器(或使用我的計算機上的某個Web界面),並用舊版本替換file1.php

我不想只在本地機器上安裝SVN服務器,因爲我總是希望通過最新的更改遠程保存副本。

有什麼建議嗎?

回答

7

我不知道有任何軟件可以做到這一點。使用標準命令行svn客戶端來編寫腳本可能並不困難。即有一個定期運行的批處理/ shell腳本,並檢查所有已更改的內容。

這就是說,我會非常強烈建議不要這樣做!

源代碼控制的正常工作模式是每個人都有一個本地副本,然後檢查他們對中央存儲庫的更改。

明確的手動簽入確保您只檢查可以工作的東西(通常),並讓您提供寶貴的簽入評論。

然後服務器可以使用來自源代碼控制庫的已知良好版本進行更新。

聽起來像你正在生產系統上工作。我強烈建議考慮使用開發環境和上述方法。

+0

你能推薦一個系統,我的本地服務器會自動從我的SVN倉庫下載最新的更新嗎? – daniel 2009-06-10 09:52:04

+0

http://cruisecontrol.sourceforge.net/ – 2009-06-10 09:54:29

1

如果我得到這個權利,你的意圖是使用SVN作爲版本化的自動備份系統。如果是這種情況,最簡單的事情就是使用文件監視工具,然後調用svn命令行客戶端查看已更改的文件,將它們提交給SVN。

0

對於您提出的場景,您可能需要考慮一個分發源代碼控制解決方案(Bazaar,Git,Mercurial),其中您有兩個提交者針對兩個代碼庫工作。然後,您可以進行本地提交,並根據需要推送更改到兩個目標。

但要立即解決問題,你可能需要某種形式的實用程序,能夠監控兩端文件的更改,然後只要它檢測到更改

0

調用適當的svn客戶端命令,我不相信這是可能或太簡單。

當您將一個文件夾放在客戶端的SVN下時,會創建一個特定的文件夾結構以跟蹤哪些文件被鎖定,更改等等。試圖更新服務器的SVN文件夾,而不先檢查文件或編輯文件,而不檢查它們(就像你想做的)是一個壞主意。

預定作業收集您的htdocs文件夾中的zip文件,版本通過文件名,然後把它上傳到一些偏遠的存儲也可能是管理這是一個更容易和更快的方式。

1

我還沒有嘗試過,但SVN-Monitor可能是有用的。您需要上述的ToirtoiseSVN客戶端才能使用它。

1

我還沒有發現任何(我也有同樣的麻煩)。

我們通過2個步驟完成。

當我要開發的軟件部分 - I支幹線和修改它,當其他人做同樣的完成自己的任務。然後我們合併分支並測試它們。測試完成後,樹幹正在被該合併補丁更新。

最後的cronjob(或手動)運行腳本,設置資源修的模式,根據需要刪除的htdocs和出口有新幹線,然後CHOWN/CHMOD一切。

該腳本可以運行從管理面板任何時間,設置neccesary修訂如果我們需要恢復迅速變化馬車...

0

我不知道,也許在SVN post-commit hook可能是一些使用,給出正確的腳本?您可以自動將當前修訂版本(即在調用掛鉤之前創建的版本)的更改部署到生產系統。我想這就是你要求的那種東西?

我不得不說,我與這裏的一些其他意見你提議什麼的不可取岬同意。我建議您在其中手動啓動部署過程的解決方案,然後從存儲庫中提取源代碼。

道歉,如果我誤解了。

編輯:重新閱讀此問題,我認爲您正在尋找自動提交到存儲庫,而不是自動部署。在這種情況下,其他人提出的預定腳本解決方案是我能想到的最好的方法。對那些建議那些+1的人。