現在大部分項目的版本控制是 git 軟件。一部分面試會問到 SVN,這裏簡單學習總計一下 SVN。
1、SVN 簡介
軟件開發過程中,可能多人編輯同一個文件會產生衝突,此時需要版本控制軟件。
最早在linux開發的CVS可以實現,缺點:產生很多無用文件
SVN是CVS的替代品。這兩個軟件都是服務器-客戶端模式。需要搭建服務器應用,並在本地配置客戶端應用。
這兩個軟件的缺點:必須在聯網的情況下使用。
2、服務器端搭建
-
需要關閉防火牆和殺毒軟件
-
在windows平臺上:部署SVN服務器,安裝 SVNServer 軟件(官網地址:https://www.visualsvn.com/server/)
-
配置工作目錄
mkdir mySVN # 創建工作目錄 svnadmin create e:\mySVN # 打開 conf 文件夾 # svnserver.conf 內部的單行註釋,去掉註釋(設置密碼和認證) # passwd 文件 # userName = password michael = hello # authz 權限設置:更改三處 [/] michale = rw # [/foo/bar] michale = rw * = #下面去掉註釋 * = r
-
啓動 SVN 服務,驗證安裝配置;
svnserve -d -r e:\mySVN
啓動之後,命令行不要關閉(最小化)。此時服務器端配置成功。
3、客戶端搭建
教程基於 Java 的eclipse安裝插件;如果是其他開發,參考其他安裝方法
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
4、開始項目
類似於 git, SVN也需要新建一個項目;
然後有一個總代碼(服務器端代碼)
不同開發者開發時,首先把本地代碼和服務器代碼更新,然後更新之後提交代碼。
相對於 git , SVN 只有兩個分支:主分支和本地分支。本地分支不能push到遠程。開發者只能直接 push 到遠程分支上。人少的情況可以很好的push,如果開發者很多,那麼push中衝突會很多。
解決衝突:如果遠程代碼和本地代碼有衝突,在更新代碼後,會顯示類似的代碼衝突。然後解決完衝突後,就可以提交到master了。
5、總結
SVN 是早期的版本控制工具,git 的功能更強大,日常開發優先使用git。
參考鏈接:阿里雲大學 + 菜鳥教程
https://edu.aliyun.com/course/83/learn#lesson/1192
https://www.runoob.com/svn/svn-tutorial.html