2008-08-18 107 views
9

我在我們的網上商店介紹Subversion。我想要通過FTP將檢入的文件上傳到服務器中(並且可以通過SFTP使用Subversion)。這些文件被髮送到候選發佈頁面以用於測試目的。可以調用腳本將文件移至生產中。Subversion和網站開發

我的問題是這樣的:你如何通過Subversion將文件傳輸到服務器?有沒有我可以添加的腳本,可以在簽入文件時進行傳輸?

回答

3

如果已安裝在其上(或安裝SVN的能力)shell訪問您的服務器,以及SVN,那麼你最好的選擇可能是隻是FTP完全繞過。

我們如何部署我們的應用程序是(簡體)

  • 開發人員編寫的代碼,並檢查它爲主幹
  • 定期,當軀幹穩定,我們將採取它的一個快照作爲標記
  • 在服務器上,SVN檢出標籤

如果需要在服務器中所做的任何更改是微不足道的使用Subversion同步的代碼(或直接在現場服務器本身)

1

我想你要找的東西就像是與自動構建腳本的集成。我已經使用CruiseControl與ASP.Net應用程序做類似的事情。我不知道你的具體要求,但我敢打賭你可以做到你想要的。

1

提交後腳本對此很有用。基本上在每次提交之後,在事件之後調用一個腳本,您可以使用它來執行svn導出到任何地方。

一個有趣的article顯示這是如何做,並this展示瞭如何掛鉤腳本可以與顛覆

1

你也許可以使用SVN「掛鉤」要做到這一點可以使用。基本上,您可以配置服務器在每次簽入之前或之後運行腳本。以下是直接鏈接到online book的相關部分。

3

您想構建一個使用SubVersion中的提交後掛鉤的腳本。您可以從存儲庫導出腳本,然後將FTP導出到服務器,也可以從存儲庫檢出到服務器上的工作目錄,然後在post-commit掛載腳本的服務器工作目錄中調用「svn update」 。

There's more information in the Subversion FAQ

0

我第二個獵戶座的想法。如果您擁有對服務器的shell訪問權限,那麼使用Subversion本身作爲部署工具非常簡單。只要確保你設置了一些網絡服務器規則,這樣你就不會意外地暴露.svn目錄。

2

我想你應該使用svn導出而不是svn checkout進行部署,所以你沒有那些.svn目錄讓你的生產備份工作混亂。 svn export是一個「乾淨」的結帳。

我也會創建一個腳本來處理它。根據代碼結構的不同,您可以經常對目錄進行版本升級,並將符號鏈接更新爲最新版本,從而使回滾更容易。

你甚至可以使用類似Capistrano的東西來自動化部署。儘管如此,我還是推薦了CruiseControl。

0

svn2web會在每次提交時將ftp或scp文件從Subversion存儲庫傳輸到Web服務器。詳情請參閱SourceForge項目。