天天看點

SVN用戶端安裝配置和使用(windows)

1、  到svn官方網站http://subversion.trigris.org/下載下傳伺服器安裝包svn-win32-1.6.1.zip,将該壓縮包解壓到D:/subversion目錄下,出現D:/subversion/bin。建立D:/svn,在指令行該目錄(D:/subversion/bin/)下輸入svnadmin create D:/svn/repos1,如果建立成功,D:/svn下将會多一個repos1目錄。

2、  讓svnservice服務随Windows系統一起啟動,在指令行下輸入:sc create svnservice binPath= "/"D:/subversion/bin/svnserve.exe/" --service -r D:/svn" start= auto

3、  權限配置:

在進行權限配置前,所有的使用者都能進行任何操作,在很多情況下是不允許的。在建立倉庫時,倉庫目錄(如:D:/svn/repos1)下都會生成好幾個檔案夾,其中conf裡面存儲的是配置資訊,包括三個檔案:

authz:通路權限配置

passwd:使用者名和密碼配置

svnserve.conf:基本配置資訊

⑴先配置svnserve.conf,将裡面幾項配置前的注釋去掉,最後的内容如下:

[general]

#anon-access = read

#auth-access = write

password-db = passwd

authz-db = authz

這些參數的含義檔案裡都有詳細說明,其中,anon-access和auth-access分别是對匿名使用者以及認證使用者的通路控制,password- db指明使用者密碼檔案路徑,authz-db指明權限配置檔案路徑。另外還有一個參數realm用于指明倉庫所屬的認證域,預設情況下每個倉庫位于不同的域(每個倉庫有一個唯一的uuid),是以我們可以不設定該項,除非多個倉庫需要共用同一份passwd配置。

⑵passwd檔案的配置很簡單,格式如下(等号前面為使用者名,後面為密碼):

[users]

#harry = 123

#sally = 123

sunxiaoyong = 11111111[A1] 

⑶authz則可以建立使用者組并精确配置某個使用者或使用者組對某個檔案或目錄的通路權限,下面是一個例子:

[groups]

#harry_and_sally = harry,sally

[/]

sunxiaoyong = rw

* = r[A2]

#[/project1]

#* =

#harry = rw

#sally = r

#[/project1/foo]

#sally =

#[/project2]

#@harry_and_sally = rw

#guest = r

檔案内容其實很簡單易懂,groups用于定義使用者組,後面便是對資源的具體通路控制,/表示倉庫根目錄,*表示所有使用者,使用者組前面需加上@符号,r表示可讀,w表示可寫,等号右邊為空則表示沒有權限。注意對于目錄結構,當使用者通路某個資源時,SVN會先看有沒有直接針對該資源的通路控制,如果沒有找到,則會繼承上一級目錄的通路權限,如此遞推。

補充再提一點,當我們有多個倉庫時,我們會發現這些倉庫的使用者帳号在大多數情況下都是相同的,是以,我們可以将passwd檔案放到公共的地方,然後将所有倉庫的password-db配置都指向該檔案。相應的,authz-db也可以共用一個檔案,不過需要在配置具體的通路控制時指明所屬的倉庫,如下:

[/]

* = r

[repos1:/project1]

* = r

harry = rw

[repos2:/project1]

* = r

sally = rw

上述配置表明,所有人對所有倉庫的根目錄都有讀權限,但隻有harry對倉庫repos1裡的project1有讀寫權限,隻有sally對倉庫repos2裡的project1有讀寫權限。

--------------------------------------------------------------------------------

 [A1]建立使用者

 [A2]設定權限

完成了svn伺服器的安裝配置,怎麼使用svn呢?在Windows下,最常用的svn用戶端是TortoiseSVN,有時簡稱為TSVN。

TortoiseSVN安裝

可以從http://tortoisesvn.tigris.org/下載下傳最新版,目前最新版是TortoiseSVN-1.5.6.14908。

下載下傳後,安裝。重新開機機器,使目錄圖示生效。

在資料總管中,滑鼠右鍵點選任意位置,右鍵菜單中出現“SVN Checkout”,即為安裝成功。

svn操作流程

開發人員使用svn進行開發的一般流程是:

checkout(檢出)項目

——> 更新檔案或目錄 ——> update

——> 修改檔案或目錄 —— commit(送出)變更

——> 增加檔案或目錄 ——> add(增加) 檔案或目錄——> commit(送出)

——> 删除檔案或目錄 ——> commit(送出)上一級目錄

其中,checkout隻進行一次,update、commit、add操作根據需要會經常使用。

checkout(檢出)操作

在資料總管中,滑鼠右鍵點選任意位置,在菜單中選擇”SVN Checkout”。

出現對話框,在”URL of repository:”中輸入svn串,格式是”協定://ip:port/版本庫/項目/目錄“。根據實際情況輸入,例如http://code.google.com/p/google-web-toolkit/source。如有疑問,向svn伺服器管理者詢問。

在“checkout directory”中輸入本地存放代碼的目錄,請選擇空目錄或新目錄。svn會清空該目錄下的一切檔案。輸入完畢,點選”ok”按鈕。

如果需要,會提示輸入使用者名和密碼。選上”Save authentication”後,以後可以自動登入,不必重輸密碼。

checkout…有時候時間會很長。結束,點”ok”。

update(更新)操作

在資料總管中,選擇本地目錄或檔案,滑鼠右鍵菜單選擇”SVN Update”。會提示有無檔案需要更新,點”ok”完成。

commit(送出)操作

把本地目錄中變化了的檔案或目錄送出到版本庫中,用commit操作。增加新檔案或目錄,要先用add,再commit。删除檔案或目錄,commit上一級目錄。

在資料總管中,選擇本地目錄或檔案,滑鼠右鍵菜單選擇”SVN Commit”。

顯示分上下2個框的界面。在上框輸入說明文字,建議寫版本号或變更原因,以便将來查找。下框列出送出的内容。沒有可送出的内容,下框中會顯示一段說明文字。點“ok”。

送出結束,顯示結果。點“ok”。

解決代碼沖突

如果commit時出現“You have to update your work copy first.”紅色警告,說明版本庫中的此檔案已經被其他人修改了。請先點“ok”按鈕退出。執行update,然後再commit。

如果修改與update得到的代碼不沖突,則自動合并。如果沖突(比如對同一行代碼進行了修改),則出現”One or more files are in a conflicted state.“紅色警告,并産生幾個檔案記錄沖突。一般情況下,我們不要直接編輯沖突檔案。而按照以下操作手工解決沖突。

在資料總管中,選擇commit時沖突的那個檔案,滑鼠右鍵菜單選擇”Edit conficts”。

出現界面,分為”Theirs”、”Mine”和”Merged”3部分,表示”别人修改的内容”、 ”我修改的内容”和”合并後的結果”3部分。我們是要将”别人修改的内容”和”我修改的内容”有取舍地合并起來,形成”合并後的結果”。

合并一般分為4種情況:

  • 保留”我的修改”,舍棄”别人的修改”。滑鼠右鍵點選Mine框的相應行,點選”Use this text block”。
  • 舍棄”我的修改”,保留”别人的修改”。滑鼠右鍵點選Theirs框的相應行,點選”Use this text block”。
  • 同時保留”我的修改”和”别人的修改”,并将”我的修改” 放在前面。滑鼠右鍵點選Mine框的相應行,點選”Use text block from mine before theirs”。
  • 同時保留”我的修改”和”别人的修改”,并将”别人的修改”放在前面。滑鼠右鍵點選Mine框的相應行,點選”Use text block from theirs before mine”。

合并完成,Ctrl+S存盤,退出。

然後,在資料總管中,選擇沖突檔案,滑鼠右鍵菜單選擇”Resolved”,标記沖突已解決。系統會自動删除因沖突而建立的檔案。此時,就可以繼續進行commit操作了。

add(增加)操作

增加新檔案或目錄,要先用add,再commit。

在資料總管中,選擇新增的目錄或檔案,滑鼠右鍵菜單選擇”Add”。

提示增加的檔案。點“ok”繼續。結束點“ok”。

删除操作

删除檔案或目錄,commit上一級目錄。

本文來自http://jijian91.com  原文http://jijian91.com/blog20061215/tortoisesvn.html