讓虛擬機器主機也用上SVN:適用於個人的開發部署方式

來源:互聯網
上載者:User

相 信很多開發人員和我一樣,在工作之餘還會管理個人網站,和網友們分享自己的經驗和代碼。應該大部分人都是租用的虛擬機器主機,這樣平時在公司那一套使用SVN 提交代碼的方式就不管用了,每次更新程式,都要先整理一份修改記錄,然後依次用FTP上傳,麻煩耗時不說,還會經常遺漏檔案,造成不必要的麻煩。

想 要讓線上代碼和本地開發環境保持同步,方法也很多,最簡單的可以利用CuteFtp,WinScp的檔案夾監視功能,當被監視的檔案夾內有修改動作,就會 自動觸發程式提交代碼到伺服器。但這樣也有個弊端,在本地調試的修改也會帶上線,雖然是方便了,但可能造成更大的問題。

如 圖所示,當開發人員在本地開發並調試後,提交代碼到本機SVN伺服器,觸發post-commit鉤子,調用post-commit.bat,(由於對 bat的文法不熟悉,在這個架構中,我用php代替bat,post-commit.bat僅做了在命令列下調用post-commit.php並傳 參),然後然後進行檔案的同步處理。

大致流程如下:

  1. 開發人員提交代碼到SVN伺服器
  2. 提交完成後,自動調用post-commit鉤子
  3. 鉤子調用php指令碼並傳遞三個參數:代碼倉庫路徑,目前的版本號,設定檔名
  4. php指令碼通過傳遞過來的參數取得並分析目前的版本的更新日誌
  5. 根據不同的情況(新增、修改、刪除、重名民)來同步檔案

post-commit.bat代碼如下:

1
2 set PATH=D:\Program Files\WebServer\PHP5.2.6;%PATH%
php "F:\wwwroot\site\raychou\labs\php-svn-hooks\post-commit.php" "%1" %2 "config/raychou.php" 1>&2

除post-commit預設的%1和%2兩個參數外,這裡我還傳了第三個參數”config/raychou.php”,這個參數是傳遞給PHP指令碼,讓其去讀取指定的設定檔,這個設定檔是在同步過程中需要用到的一些設定,例如SVN工作目錄,FTP帳號等設定。

php在接收到hooks傳遞過來的參數後,讀取設定檔,串連本地SVN版本庫,取得並分析本地更新日誌,串連FTP伺服器,開始同步檔案。

關於SVN Hooks以及post-commit的參數傳遞,請參考這裡http://www.subversion.org.cn/svnbook/1.4/svnbook.html#svn.ref.reposhooks

php-svn-hooks php-ftp-client php-svn-client

註:本文僅針對沒有條件在主機上安裝SVN伺服器的情況,例如使用虛擬機器主機的開發人員。

轉載自:http://hi.baidu.com/omyss/item/e524bfd7d5fc98cd1a72b4ee

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.