jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          理解鉤子腳本

          Posted on 2010-10-14 11:03 幻海藍夢 閱讀(737) 評論(0)  編輯  收藏 所屬分類: 版本管理

          無論你用什么協議訪問你的版本庫,都至少需要創建一個版本庫,這可以使用Subversion命令行客戶端或TortoiseSVN完成。

          如果你還沒有創建Subversion版本庫,是時間開始了。

          4.1. 創建版本庫

          你可以使用FSFS或較老但更穩定的Berkeley Database(BDB)作為版本庫的后端,FSFS格式更快一點,而且可以正常運行在Windows 98,BDB格式更加的穩定,因為其經過了更長時間的驗證。《使用Subversion進行版本控制》中的第5章, 版本庫數據存儲有更多細節。

          4.1.1. 使用命令行工具創建版本庫

          1. 創建一個名為SVN(例如D:\SVN\)的空文件夾,作為你的所有版本庫的根。
          2. D:\SVN\里創建另一個目錄MyNewRepository
          3. 打開命令行窗口(或DOS窗口),進入D:\SVN\目錄,輸入

            svnadmin create --fs-type bdb MyNewRepository

            svnadmin create --fs-type fsfs MyNewRepository

          現在你在D:\SVN\MyNewRepository創建了一個新的版本庫。

          4.1.2. 使用TortoiseSVN創建版本庫

          圖 4.1. 未版本控制文件夾的TortoiseSVN菜單

          未版本控制文件夾的TortoiseSVN菜單

          1. 打開資源管理器
          2. 創建一個新的文件夾,命名為SVNRepository
          3. 右鍵點擊新創建的目錄,選擇TortoiseSVN在此創建版本庫...

            然后就會在新文件夾創建一個版本庫,不要手工編輯這些文件!!!如果你得到什么警告,一定要先確定目錄非空并且沒有寫保護。

          4.1.3. 本地訪問版本庫

          為了訪問本地版本庫,你需要這個文件夾的路徑,只要記住Subversion期望所有的版本庫路徑使用的形式為file:///C:/SVNRepository/,請注意全部使用的是斜杠。

          為了訪問網絡共享中的版本庫,你可以使用驅動器影射或使用UNC路徑,對于UNC路徑,形式為file://ServerName/path/to/repos/,請注意這里前面只有兩個斜杠。

          在SVN 1.2之前,UNC路徑曾經是一種非常晦澀的格式file:///\ServerName/path/to/repos,這種格式依然支持,但不推薦。

          [警告] 警告
          不要創建和訪問網絡共享上的Berkeley DB版本庫,它不能存在于一個遠程的文件系統,即使是影射到盤符的共享。如果你希望在網絡共享使用Berkeley DB,結果難以預料-你可能會立刻看到奇怪的錯誤,也有可能幾個月之后才發現數據庫已經損壞了。
          [提示] 提示
          如果你需要訪問網絡共享中的版本庫,請使用fsfs格式創建版本庫,如果也希望提供服務器訪問,你需要1.1或更高版本的Subversion服務器。

          4.2. 版本庫備份

          無論你使用何種版本庫,定期維護和驗證版本庫備份非常重要,或許你可以訪問最近版本的文件,但是如果沒有版本庫,所有的歷史將會丟失。

          最簡單(但不推薦)的方法是拷貝整個版本庫目錄到備份介質,然而你必須絕對確定沒有訪問數據的進程,在這里“訪問”的意思是任何訪問,一個BDB版本庫即使在訪問看起來只需要讀時也會有寫操作,如果在拷貝時版本庫被訪問了(web瀏覽器,WebSVN等等),備份將毫無價值。

          推薦的方法是運行

          svnadmin hotcopy path/to/repository path/to/backup --clean-logs

          ,用一種安全的方式創建版本庫的拷貝,備份是一個拷貝,--clean-logs選項并不必須,但是通過刪除BDB版本庫中多余的日志文件可以節省一些空間。

          svnadmin在安裝Subversion命令行客戶端時會自動安裝,如果你在Windows PC上安裝這個命令行工具,最好的方式是下載Windows安裝版本,它比.zip版本的壓縮效率更好,所以更小,并且小心的為你設定路徑。你可以從http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91下載最新版本的命令行客戶端。

          4.3. 鉤子腳本

          鉤子腳本是被版本庫事件觸發的程序,例如新修訂版本的創建或未版本化屬性的修改。每一種鉤子都會被告知事件的足夠信息,操作的目標,觸發事件的用戶名。依賴于鉤子的輸出或返回狀態,鉤子程序可以繼續執行,停止或以某種方式掛起。請參閱《使用Subversion進行版本控制》的Hook Scripts部分來查看關于鉤子實現的細節。

          版本庫的hooks目錄中有一些鉤子的例子腳本,這些例子腳本適合于Unix/Linux服務器,在Windows下需要修改。鉤子可以是批處理文件或可執行文件,下面是用來實現pre-revprop-change鉤子的例子。

          rem Only allow log messages to be changed. if "%4" == "svn:log" exit 0 echo Property '%4' cannot be changed >&2 exit 1

          請注意所有發送到標準輸出的東西都會被忽略,如果你希望信息出現在拒絕提交對話框中,你需要將這些信息發送到標準錯誤,在一個批處理文件中使用>&2實現。

          4.4. 檢出鏈接

          如果你希望你的Subversion版本庫對于別人可用,你可以在你的站點包含一個鏈接。為了讓這些更加容易訪問,你可以為其他TSVN用戶包含一個檢出鏈接

          當你安裝了TortoiseSVN,它會注冊一個tsvn:協議,當TSVN用戶點擊這樣一個鏈接,檢出窗口會自動彈出,且版本庫URL已經填入。

          為了在你自己的網頁上包含這樣一個鏈接,你需要添加類似下面的代碼:

          <a href="tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk"></a>

          當然,如果你提供一個合適的圖片會更好,你可以使用TortoiseSVN logo,也可以使用自己的圖片。

          <a href="tsvn:https://tortoisesvn.tigris.org/svn/tortoisesvn/trunk"> <img src=TortoiseCheckout.png></a>

          主站蜘蛛池模板: 米脂县| 胶州市| 定西市| 当阳市| 南昌市| 五河县| 隆化县| 绥江县| 新竹市| 阜阳市| 枣强县| 景德镇市| 宜兰县| 承德县| 搜索| 石嘴山市| 奎屯市| 玛纳斯县| 陕西省| 临高县| 东阿县| 苍溪县| 绍兴县| 西城区| 象州县| 太和县| 清涧县| 阳谷县| 镇宁| 芦溪县| 库尔勒市| 吉水县| 色达县| 育儿| 勃利县| 聊城市| 莒南县| 定日县| 德令哈市| 土默特右旗| 马关县|