教你搭建一套自己的SVN服务器
→****在這里恭祝大家1024程序員節(jié)日快樂(lè)!
服務(wù)端安裝及配置
安裝SVN服務(wù)端
創(chuàng)建svn服務(wù)工程總目錄
-
創(chuàng)建一個(gè)根目錄,這個(gè)根目錄用來(lái)存儲(chǔ)所有的svn的工廠信息(每一個(gè)工廠等于一個(gè)項(xiàng)目)
-
啟動(dòng)svn: svnserver -d -r F:/SVN/ROOT
??對(duì)于wndows而言不支持后臺(tái)模式,要添加到服務(wù)里,由手動(dòng)改為自動(dòng)!
??解釋:我們?cè)俅蜷_(kāi)一個(gè)cmd敲入netstat -an可以看到出現(xiàn)了端口為3690的服務(wù),這就是svn的
端口,但是當(dāng)我們關(guān)閉命令啟動(dòng)窗口的時(shí)候,3690端口服務(wù)又不不見(jiàn)了。
?所以要想保持服務(wù)不被關(guān)閉,我們最好加入到window啟動(dòng)服務(wù)里來(lái)進(jìn)行啟動(dòng),linux支持后臺(tái)啟動(dòng):
sc create SVNserver binPath= "F:\SVN\Subversion\bin\svnserve --service -r F:/SVN/ROOT"
異常問(wèn)題- [sc] openSCManager 失敗 5 拒絕 訪問(wèn)拒絕::
??安裝svnserver服務(wù)win下安裝subversion 的svnserver作為服務(wù)時(shí)遇到了這個(gè)問(wèn)題。
解決方案:
??建立一個(gè)新文件svnSetup.bat.輸入并保存:
sc create SVNserver binPath= "F:\SVN\Subversion\bin\svnserve --service -r F:/SVN/ROOT"
displayname= "Subversion" depend= tcpip start= auto
sc start svnserve
右鍵單擊svnSetup.bat,選擇以“管理員方式運(yùn)行”即可
總結(jié):主要原因仍是沒(méi)有權(quán)限,在命令行時(shí)執(zhí)行這個(gè)操作總是提示沒(méi)有權(quán)限,而以管理員方式運(yùn)行則避免了這個(gè)問(wèn)題,相當(dāng)迂回了一下吧。
客戶端安裝及開(kāi)發(fā)流程
配置管理人員
創(chuàng)建工廠
svnadmin create F:\SVN\ROOT\student
在windows也可可以:
配置權(quán)限
創(chuàng)建用戶
配置權(quán)限
PM創(chuàng)建并提交項(xiàng)目
- 項(xiàng)目經(jīng)理創(chuàng)建項(xiàng)目并提交到svn工廠中(一般是客戶端TortoiseSVN,而不是命令行)
-
- 安裝客戶端或者eclipse插件,安裝成功后右鍵會(huì)出現(xiàn)兩個(gè)svn菜單(有checkout)
-
- 點(diǎn)擊student文件夾
填寫項(xiàng)目地址,點(diǎn)擊提交
我們發(fā)現(xiàn)認(rèn)證失敗
因?yàn)槟涿脩羰墙乖L問(wèn)的,我們可以修改F:\SVN\ROOT\student\conf下的svnserve.conf文件,如圖
修改Anonymous權(quán)限為可讀也可寫。當(dāng)然匿名用戶肯定不可讓他訪問(wèn),這里為了方便演示。注意空格。以上就完成項(xiàng)目經(jīng)理的導(dǎo)入。
- 點(diǎn)擊student文件夾
開(kāi)發(fā)人員checkout檢出項(xiàng)目
我們新建開(kāi)發(fā)人員文件夾來(lái)模仿開(kāi)發(fā)端如下:
點(diǎn)擊OK會(huì)發(fā)現(xiàn)開(kāi)發(fā)人員01下已經(jīng)有了所有的項(xiàng)目信息。
開(kāi)發(fā)人員02也一樣。Commit與update很簡(jiǎn)單就不說(shuō)了。
沖突問(wèn)題
01修改了jsp,添加了第三行,然后提交到svn
02修改了jsp,添加了第二行,也提交,此時(shí)
02提交時(shí),提示已經(jīng)過(guò)時(shí),要先更新。
點(diǎn)擊OK,更新
提示沖突。并且發(fā)現(xiàn)多了三個(gè)文件
打開(kāi)看下:
第一個(gè)index.jsp.mine: 這是我的(當(dāng)前提交人02)
Index.jsp.r2:這是我的(當(dāng)前提交人02)原始版本
Index.jsp.r3:我們發(fā)現(xiàn)這個(gè)和01的一樣,其實(shí)這就是01的。
最后我們打開(kāi)index.jsp,帶有感嘆號(hào)的沖突文件。
上邊清楚的爆出我和r3的沖突,即02和01我們修改沖突:然后刪除掉多出的三個(gè)文件,然后發(fā)現(xiàn)index.jsp變成了紅色的圖標(biāo)。
提交即可
然后用01去更新一下看。
01也變成了剛剛02修改合并后的
總結(jié)
- 沖突產(chǎn)生的條件:兩個(gè)或多個(gè)開(kāi)發(fā)人員共同修改了一個(gè)文件之后并且提交會(huì)產(chǎn)生沖突。
- 如何避免沖突:
1 修改代碼之前先進(jìn)行更新。(不能保證不沖突,但是前提)
2 項(xiàng)目經(jīng)理分配任務(wù)的時(shí)候需要獨(dú)立考慮,為不同的人分配不同的模塊,這樣盡可能避免沖突。
Showlog
查看日志:這是我們對(duì)這個(gè)文件的修改記錄。
誤刪文件后如何處理
問(wèn)題:但01不小心刪除了index.jsp后,又不小心提交了。
但是02此時(shí)還有index.jsp,
當(dāng)他執(zhí)行update后發(fā)現(xiàn)index.jsp不見(jiàn)了。
可是這個(gè)index.jsp是有用的,02很生氣,01交代了是自己不小心做了刪除后提交的操作,導(dǎo)致02的文件丟失。幸好02是個(gè)有經(jīng)驗(yàn)的人,于是他做了一下操作,找回了index.jsp。
點(diǎn)擊showlog
選擇版本,OK。
02的index.jsp又回來(lái)了。但是當(dāng)02進(jìn)行update后發(fā)現(xiàn)index.jsp又不見(jiàn)了。于是他很郁悶。不得不重復(fù)上邊的步驟找了回來(lái)。他想我提交這個(gè)文件到版本庫(kù)不就OK了,于是想要提交
他驚奇的發(fā)現(xiàn)提交按鈕變成灰色了,無(wú)法提交。
不能更新,又不能提交,這怎么辦?
- 不要進(jìn)行刪除后的提交操作。避免此種情況發(fā)生。
- 添加到忽略列表中。Svn不對(duì)index.jsp進(jìn)行版本管理。
然后再-Add-Commit:
完畢
至此,如何搭建自己的svn服務(wù)器已經(jīng)講解完畢!怎么樣,是不是挺好玩的!
歡迎有問(wèn)題跟我一起交流~
個(gè)人公眾號(hào)-offer驛站:
其他優(yōu)質(zhì)文章:
《成就一億技術(shù)人,我在CSDN的這九年》
《計(jì)算機(jī)如何做減法?10個(gè)程序員9個(gè)不知道!!!》
《高級(jí)編程語(yǔ)言學(xué)習(xí)概論》
《互聯(lián)網(wǎng)三高架構(gòu)之高并發(fā)和高性能的理解》
《《跟任何人都能聊得來(lái)》讀書筆記》
《這十年里的迷茫路口》
《一個(gè)碼農(nóng)的那五年》
《搞技術(shù)的總要做點(diǎn)高逼格的事情,那些lowB操作留給新人練手吧!》
總結(jié)
以上是生活随笔為你收集整理的教你搭建一套自己的SVN服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Angular Reactive For
- 下一篇: 王者荣耀战令币多少钱一个 战令币怎么得