jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          理解鉤子腳本

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

          無論你用什么協(xié)議訪問你的版本庫,都至少需要?jiǎng)?chuàng)建一個(gè)版本庫,這可以使用Subversion命令行客戶端或TortoiseSVN完成。

          如果你還沒有創(chuàng)建Subversion版本庫,是時(shí)間開始了。

          4.1. 創(chuàng)建版本庫

          你可以使用FSFS或較老但更穩(wěn)定的Berkeley Database(BDB)作為版本庫的后端,F(xiàn)SFS格式更快一點(diǎn),而且可以正常運(yùn)行在Windows 98,BDB格式更加的穩(wěn)定,因?yàn)槠浣?jīng)過了更長(zhǎng)時(shí)間的驗(yàn)證。《使用Subversion進(jìn)行版本控制》中的第5章, 版本庫數(shù)據(jù)存儲(chǔ)有更多細(xì)節(jié)。

          4.1.1. 使用命令行工具創(chuàng)建版本庫

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

            svnadmin create --fs-type bdb MyNewRepository

            svnadmin create --fs-type fsfs MyNewRepository

          現(xiàn)在你在D:\SVN\MyNewRepository創(chuàng)建了一個(gè)新的版本庫。

          4.1.2. 使用TortoiseSVN創(chuàng)建版本庫

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

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

          1. 打開資源管理器
          2. 創(chuàng)建一個(gè)新的文件夾,命名為SVNRepository
          3. 右鍵點(diǎn)擊新創(chuàng)建的目錄,選擇TortoiseSVN在此創(chuàng)建版本庫...

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

          4.1.3. 本地訪問版本庫

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

          為了訪問網(wǎng)絡(luò)共享中的版本庫,你可以使用驅(qū)動(dòng)器影射或使用UNC路徑,對(duì)于UNC路徑,形式為file://ServerName/path/to/repos/,請(qǐng)注意這里前面只有兩個(gè)斜杠。

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

          [警告] 警告
          不要?jiǎng)?chuàng)建和訪問網(wǎng)絡(luò)共享上的Berkeley DB版本庫,它不能存在于一個(gè)遠(yuǎn)程的文件系統(tǒng),即使是影射到盤符的共享。如果你希望在網(wǎng)絡(luò)共享使用Berkeley DB,結(jié)果難以預(yù)料-你可能會(huì)立刻看到奇怪的錯(cuò)誤,也有可能幾個(gè)月之后才發(fā)現(xiàn)數(shù)據(jù)庫已經(jīng)損壞了。
          [提示] 提示
          如果你需要訪問網(wǎng)絡(luò)共享中的版本庫,請(qǐng)使用fsfs格式創(chuàng)建版本庫,如果也希望提供服務(wù)器訪問,你需要1.1或更高版本的Subversion服務(wù)器。

          4.2. 版本庫備份

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

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

          推薦的方法是運(yùn)行

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

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

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

          4.3. 鉤子腳本

          鉤子腳本是被版本庫事件觸發(fā)的程序,例如新修訂版本的創(chuàng)建或未版本化屬性的修改。每一種鉤子都會(huì)被告知事件的足夠信息,操作的目標(biāo),觸發(fā)事件的用戶名。依賴于鉤子的輸出或返回狀態(tài),鉤子程序可以繼續(xù)執(zhí)行,停止或以某種方式掛起。請(qǐng)參閱《使用Subversion進(jìn)行版本控制》的Hook Scripts部分來查看關(guān)于鉤子實(shí)現(xiàn)的細(xì)節(jié)。

          版本庫的hooks目錄中有一些鉤子的例子腳本,這些例子腳本適合于Unix/Linux服務(wù)器,在Windows下需要修改。鉤子可以是批處理文件或可執(zhí)行文件,下面是用來實(shí)現(xiàn)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

          請(qǐng)注意所有發(fā)送到標(biāo)準(zhǔn)輸出的東西都會(huì)被忽略,如果你希望信息出現(xiàn)在拒絕提交對(duì)話框中,你需要將這些信息發(fā)送到標(biāo)準(zhǔn)錯(cuò)誤,在一個(gè)批處理文件中使用>&2實(shí)現(xiàn)。

          4.4. 檢出鏈接

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

          當(dāng)你安裝了TortoiseSVN,它會(huì)注冊(cè)一個(gè)tsvn:協(xié)議,當(dāng)TSVN用戶點(diǎn)擊這樣一個(gè)鏈接,檢出窗口會(huì)自動(dòng)彈出,且版本庫URL已經(jīng)填入。

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

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

          當(dāng)然,如果你提供一個(gè)合適的圖片會(huì)更好,你可以使用TortoiseSVN logo,也可以使用自己的圖片。

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

          主站蜘蛛池模板: 克拉玛依市| 东乡族自治县| 宜阳县| 十堰市| 乡宁县| 通榆县| 浮山县| 北流市| 额尔古纳市| 铜川市| 永定县| 合川市| 彰化市| 祁门县| 东莞市| 香格里拉县| 海伦市| 莲花县| 田东县| 萨迦县| 凤山县| 广东省| 神农架林区| 韩城市| 剑川县| 衡阳市| 开化县| 辽宁省| 高雄市| 古蔺县| 河南省| 陵川县| 米林县| 梧州市| 鹿邑县| 武山县| 泸溪县| 溧阳市| 益阳市| 芦山县| 镇原县|