教你搭建一套自己的SVN伺服器

Jeff.Smile發表於2019-10-19

在這裡插入圖片描述→****在這裡恭祝大家1024程式設計師節日快樂!

服務端安裝及配置

安裝SVN服務端

在這裡插入圖片描述

建立svn服務工程總目錄

  • 建立一個根目錄,這個根目錄用來儲存所有的svn的工廠資訊(每一個工廠等於一個專案)

  • 啟動svn: svnserver -d -r F:/SVN/ROOT

      對於wndows而言不支援後臺模式,要新增到服務裡,由手動改為自動!
      解釋:我們再開啟一個cmd敲入netstat -an可以看到出現了埠為3690的服務,這就是svn的
    埠,但是當我們關閉命令啟動視窗的時候,3690埠服務又不不見了。
     所以要想保持服務不被關閉,我們最好加入到window啟動服務裡來進行啟動,linux支援後臺啟動:

 sc create SVNserver binPath= "F:\SVN\Subversion\bin\svnserve --service -r  F:/SVN/ROOT"

異常問題- [sc] openSCManager 失敗 5 拒絕 訪問拒絕
  安裝svnserver服務win下安裝subversion 的svnserver作為服務時遇到了這個問題。
解決方案
  建立一個新檔案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,選擇以“管理員方式執行”即可
總結:主要原因仍是沒有許可權,在命令列時執行這個操作總是提示沒有許可權,而以管理員方式執行則避免了這個問題,相當迂迴了一下吧。

客戶端安裝及開發流程

配置管理人員

建立工廠

 svnadmin create F:\SVN\ROOT\student

在windows也可可以:
在這裡插入圖片描述

配置許可權

在這裡插入圖片描述
在這裡插入圖片描述

建立使用者

在這裡插入圖片描述
在這裡插入圖片描述

配置許可權

在這裡插入圖片描述

PM建立並提交專案

  • 專案經理建立專案並提交到svn工廠中(一般是客戶端TortoiseSVN,而不是命令列)
    • 安裝客戶端或者eclipse外掛,安裝成功後右鍵會出現兩個svn選單(有checkout)
    • 點選student資料夾
      在這裡插入圖片描述
      填寫專案地址,點選提交
      在這裡插入圖片描述
      我們發現認證失敗
      在這裡插入圖片描述
      因為匿名使用者是禁止訪問的,我們可以修改F:\SVN\ROOT\student\conf下的svnserve.conf檔案,如圖
      在這裡插入圖片描述
      在這裡插入圖片描述
      修改Anonymous許可權為可讀也可寫。當然匿名使用者肯定不可讓他訪問,這裡為了方便演示。注意空格。以上就完成專案經理的匯入。

開發人員checkout檢出專案

我們新建開發人員資料夾來模仿開發端如下:
在這裡插入圖片描述
在這裡插入圖片描述
點選OK會發現開發人員01下已經有了所有的專案資訊。
在這裡插入圖片描述
開發人員02也一樣。Commit與update很簡單就不說了。

衝突問題

01修改了jsp,新增了第三行,然後提交到svn
在這裡插入圖片描述
02修改了jsp,新增了第二行,也提交,此時
在這裡插入圖片描述
02提交時,提示已經過時,要先更新。
在這裡插入圖片描述
點選OK,更新
在這裡插入圖片描述
提示衝突。並且發現多了三個檔案
在這裡插入圖片描述
開啟看下:
第一個index.jsp.mine: 這是我的(當前提交人02)
在這裡插入圖片描述
Index.jsp.r2:這是我的(當前提交人02)原始版本
在這裡插入圖片描述
Index.jsp.r3:我們發現這個和01的一樣,其實這就是01的。
在這裡插入圖片描述
最後我們開啟index.jsp,帶有感嘆號的衝突檔案。
在這裡插入圖片描述
上邊清楚的爆出我和r3的衝突,即02和01我們修改衝突:然後刪除掉多出的三個檔案,然後發現index.jsp變成了紅色的圖示。
在這裡插入圖片描述
在這裡插入圖片描述
提交即可
在這裡插入圖片描述
然後用01去更新一下看。

在這裡插入圖片描述
01也變成了剛剛02修改合併後的

總結

  • 衝突產生的條件:兩個或多個開發人員共同修改了一個檔案之後並且提交會產生衝突。
  • 如何避免衝突:
    1 修改程式碼之前先進行更新。(不能保證不衝突,但是前提)
    2 專案經理分配任務的時候需要獨立考慮,為不同的人分配不同的模組,這樣儘可能避免衝突。

Showlog

在這裡插入圖片描述
檢視日誌:這是我們對這個檔案的修改記錄。
在這裡插入圖片描述

誤刪檔案後如何處理

問題:但01不小心刪除了index.jsp後,又不小心提交了。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
但是02此時還有index.jsp,
在這裡插入圖片描述
當他執行update後發現index.jsp不見了。
在這裡插入圖片描述
可是這個index.jsp是有用的,02很生氣,01交代了是自己不小心做了刪除後提交的操作,導致02的檔案丟失。幸好02是個有經驗的人,於是他做了一下操作,找回了index.jsp。
在這裡插入圖片描述
點選showlog
在這裡插入圖片描述
選擇版本,OK。
在這裡插入圖片描述
02的index.jsp又回來了。但是當02進行update後發現index.jsp又不見了。於是他很鬱悶。不得不重複上邊的步驟找了回來。他想我提交這個檔案到版本庫不就OK了,於是想要提交
在這裡插入圖片描述
他驚奇的發現提交按鈕變成灰色了,無法提交。
不能更新,又不能提交,這怎麼辦?

  • 不要進行刪除後的提交操作。避免此種情況發生。
  • 新增到忽略列表中。Svn不對index.jsp進行版本管理。
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    然後再-Add-Commit:
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

完畢

至此,如何搭建自己的svn伺服器已經講解完畢!怎麼樣,是不是挺好玩的!
歡迎有問題跟我一起交流~

個人公眾號-offer驛站
在這裡插入圖片描述

其他優質文章
《成就一億技術人,我在CSDN的這九年》
《計算機如何做減法?10個程式設計師9個不知道!!!》
《高階程式語言學習概論》
《網際網路三高架構之高併發和高效能的理解》
《《跟任何人都能聊得來》讀書筆記》
《這十年裡的迷茫路口》
《一個碼農的那五年》
《搞技術的總要做點高逼格的事情,那些lowB操作留給新人練手吧!》

相關文章