我使用系統是: Microsoft Windows xp sp2
第一:下載軟體
有兩個軟體需要下載的:
Subversion和TortoiseSVN
Subversion 下載地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
TortoiseSVN下載地址:http://tortoisesvn.net/downloads
(有些文檔說必備軟體還有Apache,但這麼說法的大多是較舊的文檔這麼提到,隨著軟體的更新,已經沒有必要安裝Apache了,安裝Apache是為了SVN能幹更多事,比如可以基於HTTP去訪問等。)
軟體安裝完後需要重啟系統。
第二,建立服務和根目錄建立
建立svn的根目錄:例如在E盤建立檔案夾SVNRoot。
然後是建立svn服務:(這裡把svn服務建立為一個windows的服務)
在命令列下敲入:SC create svn1.5 binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"E:\SVNRoot\"" depend= Tcpip start= auto
(第一塊紅色部分為subversion的安裝位置,第二塊紅色為剛才建立的SVN根目錄,注意:命令列中等號前不能有空格,等號後必須有空格)
運行後開啟windows的服務視窗檢查,如果有svn1.5這麼個服務,說明建立成功了,初次建立可能要手動啟動下(不然重啟動系統也可以,當然這裡沒有必要重啟系統)
第三:具體項目的建立和配置。
這裡假設我們有個項目DemoProject需要用svn來管理。
在E:\SVNRoot下建立檔案夾DemoProject。進入DemoProject,滑鼠在空白處點擊右鍵,選擇TortoiseSVN,再選擇Create repository here。操作完後可以看見本來空的檔案夾內多了些檔案和檔案夾。
現在可以來測試以上步驟是否正確,在F盤建立DemoProject(開發項目時的檔案夾),進入新建立的檔案夾,空白處點擊右鍵,選擇SVNCheckOut,Url repository填入svn://localhost/DemoProject,其他預設。點擊OK,(如果視窗Action有顯示Completed,那說明操作成功)。
這樣雖然可以訪問了,但是並沒有完成,我們需要設定檔的讀寫權限。這時我們進入E:\SVNRoot\DemoProject\conf。
裡面有三個檔案。預設裡面幾乎所有的代碼都被使用#注釋了。
接下去我們來修改這三個檔案來配置svn的驗證和授權。(請大家要區分驗證和授權)
首先是svnserve.conf檔案。
# anon-access = read把這行改成anon-access = none,表示禁止匿名訪問(注意:anon前面不能有空格)
# password-db = passwd把這行前面的注釋去掉,並刪除空格,表示驗證使用者使用passwd檔案。
# authz-db = authz把這行前面的注釋去掉,並刪除空格,表示授權使用authz檔案。
然後修改passwd檔案,部分檔案內容:
[users]
# harry = harryssecret
# sally = sallyssecret
我想看下這個檔案內容就應該知道作用了,這裡是配置svn的使用者名稱和密碼,這裡harry是使用者名稱,等號後面是使用者密碼,sally是另外一個使用者。當然這兩行代碼都是被注釋的。你可以刪除注釋啟用他們,也可以自己加一行,比如:
kate = 123456
這裡用的密碼是明文,如果你的項目安全要求較高,可以使用加密的密碼,配置比較麻煩,這裡不說了。還有使用者名稱之間可不可以有空格,使用者名稱和密碼的合法字元等,這些我沒做測試。
最後配置authz
第一個屬性節點是aliases,別名,不知道作用在哪,估計就是將同等許可權的許多使用者合并成一個名稱。我這裡沒有做修改。
第二個屬性節點groups,組別,這很好理解,就是把相同許可權的使用者合并入一個組,以便下面配置授權時更加簡潔。
下面的屬性節點都是目錄授權節點。
[/foo/bar]表示以下設定/foo/bar目錄下的授權。以下授權格式是: 使用者名稱|組別名 = rw | r,r是read的縮寫,表示有讀的許可權,w是write的縮寫,表示可寫入權限,rw表示可讀可寫。
如果在根目錄下配置使用[/]就可以了。
配置完成後,再次進入F:/DemoProject,在空白處滑鼠右鍵,選擇SVNUpdate,這時會彈出個視窗要求我們輸入使用者名稱和密碼,輸入在passwd檔案中配置的使用者名稱和密碼後就可以訪問了。
這樣一個項目就配置完成了。接下去就可以使用了。具體的Update, Commit等操作使用就不說了。
Two tips:
1.
我們習慣的懶惰的操作就是下班前整個項目commit,但事實是沒有必要把整個項目的所有檔案都提交給svn管理,甚至有些檔案提交後麻煩大大的。比如vs solution下的xxx.user檔案,這個提交後造成衝突幾乎是100%的。
解決的方法就是在在TortoiseSVN的Setting中設定Global ignore pattern值為“*/bin */obj *.bak *.*scc *.user *.suo *.gpState *.webinfo bin obj *.dll *.pdb *.exe Thumbs.db */TestResults”,這裡樣本的pattern主要針對使用Visual Studio的開發人員。
2.
在TortoiseSVN的Setting中勾選 Use "_svn" instead of ".svn" directories,某些時候(我不確定是那些時候).svn在windows系統會出錯。
參考文章:
http://www.blogjava.net/zpuser/archive/2008/06/08/206654.html
Setting_up_a_Subversion_Server_under_Windows
11月25更新:
如果你看不懂上面的文章,建議你使用可視化的配置軟體來配置subversion服務。介紹文章由本文的熱心評論網友提供:
http://www.cnblogs.com/ttzhang/archive/2008/11/06/1325940.html
(我看了這篇文章配置subversion,然後使用了VisualSVN Server來配置,確實很簡單!)