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