架设SVN服务器
服務器端:windows 2003 + subversion 下載地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91 安裝按照提示一直點下一步! 安裝完subversion之后,使用\Subversion\bin\svnadmin.exe工具創建一個版本庫,客戶端的文檔和代碼都可以放在這個版本庫中 創建方法:命令行定位到svnadmin.exe所在的目錄,輸入下面的命令行,此處我創建了一個文件夾:c:\project_repository作為版本庫 執行完上面的命令后,這個目錄里面的內容如下: 下面要配置用戶和密碼以及相關的目錄權限 打開C:\project_repository\conf\svnserve.conf 將下面這幾項修改一下 修改前 # anon-access = read # auth-access = write # password-db = passwd # authz-db = authz 修改后 anon-access = none ?? ? ?? ? ?# 表示不允許匿名訪問 auth-access = write? ? ??? ? ?# 表示授權用戶有讀寫的權限 password-db = passwd? ? ? # 表示使用 當前目錄 下的passwd文件作為用戶名和密碼 參數文件 authz-db = authz? ? ??? ? ?? ? ?# 表示使用 當前目錄 下的authz文件作為目錄權限驗證文件 注意一點,將#后面的一個空格也要去掉,即,像anon-access這些配置要頂格寫 打開passwd文件,添加用戶名和密碼 [users] boss = boss_password proj_manager = proj_manager_password chenyong = chenyong_password user1 = user1_password user2 = user2_password 此處的user_name1和user_name2就是遠程客戶端連接SVN要使用的用戶名和密碼 打開authz文件進行目錄權限的配置,關于這個文件,要使用UTF-8 without BOM方式的編碼來存放,以防止中文亂碼的現象,可以使用notepad++將這個文件轉存為UTF-8 without BOM的編碼方式 在配置authz這個文件之前,先看一下版本庫的目錄結構,比如此處我的SVN服務器目錄結構如下 根目錄就是svn://127.0.0.1,即,版本庫的根目錄,公司的老板對整個庫有完整的操作權限(建議給它只讀的權限),下面有一個jiutian的子目錄,項目經理對其有完整的操作權限,再下面有chenyong和webproject兩個子目錄,chenyong這個人對chenyong這個目錄有完整的操作權限;web開發小組的人對webproject這個子目錄有完整的操作權限,不可互操作,下級目錄繼承了上級目錄的可操作權限;基于這樣的分派來創建用戶,authz文件配置如下 [groups] web_common = user1, user2; [/] boss = r [/jiutian] proj_manager?= rw [/jiutian/chenyong] chenyong = rw [/jiutian/webproject] @web_common?= rw [groups]是將相同權限的用戶分一下組,不分也行;此處我將web組的成員分在了一個組里面; 下面是分派權限 [/] boss = r 表示對于根目錄,boss這個用戶有只讀的權限,下面的目錄它也都具有讀的權限; [/jiutian] ?[/jiutian/chenyong] 這些都是一樣的分派方式,都是按用戶的權限來分派的 而[/jiutian/webproject] 分派權限的時候是按組分派的,組的前面要加一個@符號,而用戶不需要加 還有一個點要說明的是,關于根目錄,使用的是[/],而不是[project_repository:/]這種方式,關于這兩種不同的用法,是取決于啟動SVN服務的時候是否直接指向版本庫,還是指向版本庫的上一級目錄;這個后面馬上就會說到,在此MARK一下! 下面要說的就是啟動SVN服務了,寫一個批處理文件,內容如下:svnserve -d -r c:\project_repository,有一個不好的地方就是,執行了這個命令之后,CMD窗口就一直停在那個地方了,不能關了,也不能隱藏,看著很不爽;可以將這個批處理文件做成一個服務; 方式如下: 首先要兩個小工具:instsrv.exe & srvany.exe這兩個工具,自行到網上下載 下載下來之后在命令行運行如下命令:instsrv svnservice C:\Windows\System32\srvany.exe,其中svnservice是服務名; 然后打開注冊表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\svnservice 如果該服務名下沒有Parameters項目,則對服務名稱項目右擊新建項,名稱為Parameters,然后定位到Parameters項,新建以下幾個字符串值。
名稱 Application 值為你要作為服務運行的程序地址。
名稱 AppDirectory 值為你要作為服務運行的程序所在文件夾路徑。
名稱 AppParameters 值為你要作為服務運行的程序啟動所需要的參數 運行services.msc 打開服務列表,可以看到svnservice這個服務,自行修改成自動運行,這樣開機后SVN服務就會自動運行了 至此,SVN服務器就部署好了; 不過此處只設置一個版本庫,當然也可以設置多個版本庫,這就是上面MARK處留下的問題; 比如我創建了一個目錄C:\SVN,然后在下面創建了兩個版本庫的目錄project_repository1 &?project_repository2,目錄結構如下 C:\SVN C:\SVN\project_repository1 C:\SVN\project_repository2 而創建SVN服務的批處理文件寫成下面命令:svnserve -d -r C:\SVN,那就表示有兩個版本庫了,上面所說的authz文件的配置就要修改一下了,不能直接使用[/]作為根目錄,要指定具體要使用哪個版本庫,比如[project_repository1:/] ?這是一個版本庫的根目錄,[project_repository2:/]這是另一個版本庫的根目錄;上面說的那種方式是在創建SVN服務的時候就指定到版本庫,所以在配置authz文件的時候就只要寫[/]就行了,因為只啟動了一個版本庫的服務;比如這里兩個版本庫的目錄,可以在創建SVN服務的時候指定到某一個具體工作的版本庫svnserve -d -r C:\SVN\project_repository1,這樣的話,配置authz就還是使用[/],而不是使用[project_repository1:/]?(我覺得我有點唐僧了); 客戶端:tortoiseSVN 在客戶端安裝tortoiseSVN,下載地址: http://tortoisesvn.net/downloads.html 后面是語言包,下載相同版本的語言包! 我使用的windows2008,在安裝這個客戶端的時候出現了下面的問題,“無法通過windows installer服務安裝此服務包。您必須安裝帶有更新版本的window installer服務的windows”。出現這個問題,可以到微軟網站更新一下windows installer http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=5a58b56f-60b6-4412-95b9-54d056d6f9f4 將更新包下載下來后,可是安裝更新包的時候又出現了問題:安裝遇到錯誤:0x80070422,解決辦法:創建一個批處理文件,將下面的腳本復制到里面,運行一下 sc config wuauserv start= auto
sc config bits start= auto
sc config DcomLaunch start= auto
net stop wuauserv
net start wuauserv
net stop bits
net start bits
net start DcomLaunch? 然后再安裝tortoiseSVN,客戶端終于安裝好了!為了使用tortoiseSVN這個客戶端工具,在服務器端也裝一下這個;重啟一下電腦;創建工作目錄; 創建方式:鼠標右擊(隨便在哪里,在哪個文件夾,或者就在桌面上)->tortoiseSVN->Import 這就是在當前版本庫中創建一個目錄jiutian; 然后在遠程客戶端新建立一個空的目錄,在目錄空白處右擊->SVNcheckout 紅字處是服務器作為遠程的IP地址 然后輸入管理給你的用戶名和密碼就可以將這個服務checkout出來了,在這個目錄里面放東西,并上傳! OK了! 關于網上說,如果在內網下使用的話,用用svnserve來架SVN服務就可以了,但是它是明文;如果在外網下架SVN服務的話,就要使用APACH服務器了,我上面說的方式是基于svnserve?方式了,我使用抓包工具抓了一下外網下的SVN通信,發現使用的密碼用的MD5值,并是明文,此處只是個人架了一個代碼管理的服務器,用于自己的日常的代碼管理維護,明文就當是開源吧,如果是公司要求的話,我就要再研究一下到底能否將上傳的數據給搞到,或者就使用apach服務器吧! 今天一天就干了這些事情!
名稱 Application 值為你要作為服務運行的程序地址。
名稱 AppDirectory 值為你要作為服務運行的程序所在文件夾路徑。
名稱 AppParameters 值為你要作為服務運行的程序啟動所需要的參數 運行services.msc 打開服務列表,可以看到svnservice這個服務,自行修改成自動運行,這樣開機后SVN服務就會自動運行了 至此,SVN服務器就部署好了; 不過此處只設置一個版本庫,當然也可以設置多個版本庫,這就是上面MARK處留下的問題; 比如我創建了一個目錄C:\SVN,然后在下面創建了兩個版本庫的目錄project_repository1 &?project_repository2,目錄結構如下 C:\SVN C:\SVN\project_repository1 C:\SVN\project_repository2 而創建SVN服務的批處理文件寫成下面命令:svnserve -d -r C:\SVN,那就表示有兩個版本庫了,上面所說的authz文件的配置就要修改一下了,不能直接使用[/]作為根目錄,要指定具體要使用哪個版本庫,比如[project_repository1:/] ?這是一個版本庫的根目錄,[project_repository2:/]這是另一個版本庫的根目錄;上面說的那種方式是在創建SVN服務的時候就指定到版本庫,所以在配置authz文件的時候就只要寫[/]就行了,因為只啟動了一個版本庫的服務;比如這里兩個版本庫的目錄,可以在創建SVN服務的時候指定到某一個具體工作的版本庫svnserve -d -r C:\SVN\project_repository1,這樣的話,配置authz就還是使用[/],而不是使用[project_repository1:/]?(我覺得我有點唐僧了); 客戶端:tortoiseSVN 在客戶端安裝tortoiseSVN,下載地址: http://tortoisesvn.net/downloads.html 后面是語言包,下載相同版本的語言包! 我使用的windows2008,在安裝這個客戶端的時候出現了下面的問題,“無法通過windows installer服務安裝此服務包。您必須安裝帶有更新版本的window installer服務的windows”。出現這個問題,可以到微軟網站更新一下windows installer http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=5a58b56f-60b6-4412-95b9-54d056d6f9f4 將更新包下載下來后,可是安裝更新包的時候又出現了問題:安裝遇到錯誤:0x80070422,解決辦法:創建一個批處理文件,將下面的腳本復制到里面,運行一下 sc config wuauserv start= auto
sc config bits start= auto
sc config DcomLaunch start= auto
net stop wuauserv
net start wuauserv
net stop bits
net start bits
net start DcomLaunch? 然后再安裝tortoiseSVN,客戶端終于安裝好了!為了使用tortoiseSVN這個客戶端工具,在服務器端也裝一下這個;重啟一下電腦;創建工作目錄; 創建方式:鼠標右擊(隨便在哪里,在哪個文件夾,或者就在桌面上)->tortoiseSVN->Import 這就是在當前版本庫中創建一個目錄jiutian; 然后在遠程客戶端新建立一個空的目錄,在目錄空白處右擊->SVNcheckout 紅字處是服務器作為遠程的IP地址 然后輸入管理給你的用戶名和密碼就可以將這個服務checkout出來了,在這個目錄里面放東西,并上傳! OK了! 關于網上說,如果在內網下使用的話,用用svnserve來架SVN服務就可以了,但是它是明文;如果在外網下架SVN服務的話,就要使用APACH服務器了,我上面說的方式是基于svnserve?方式了,我使用抓包工具抓了一下外網下的SVN通信,發現使用的密碼用的MD5值,并是明文,此處只是個人架了一個代碼管理的服務器,用于自己的日常的代碼管理維護,明文就當是開源吧,如果是公司要求的話,我就要再研究一下到底能否將上傳的數據給搞到,或者就使用apach服務器吧! 今天一天就干了這些事情!
總結
- 上一篇: [HDU]2098分拆素数和
- 下一篇: 2013 Multi-Universit