您好,登錄后才能下訂單哦!
一、代碼管理平臺介紹
版本控制,記錄若干文件內容的變化,以便將來查閱特定版本修訂情況
版本管理工具發展簡史,CVS→SVN→Git
CVS:兼容性不太好。
SVN:太慢。全名:Subversion,是一個開源版本控制系統,始于2000年。
Git:Linux創始人linus發起的,2005年發布,最初目的是更好的管理Linux內核代碼。
Git和SVN不同在于Git不需要依賴服務端就可以工作,即Git是分布式的。
關于Git和SVN的比較,參考http://blog.lishiming.net/?p=305
SVN和Git的最主要的差異——分布式。
SVN優勢:
1.存儲
SVN服務器既具有CVS所具有數據儲存的優點,數據一般不會丟失,同時又擁有自己的特色。SVN是通過關系數據庫及二進制的存儲方式,同時解決了既往不能同時讀寫同一文件等問題,同時增添了自己特有的“零或一”原則。
2.速度
與初始的CVS相比,SVN在速度運行方面有很大提升。因為SVN服務器只支持少量的信息、資源傳輸,與其他系統相比,更支持的是離線模式,因此避免了網絡擁擠現象的出現。
3.安全性
SVN是一種技術性更加安全的產品,實現了系統和控制兩方面的結合。一方面可以將系統整體的安全功能有效地分布在分支系統中,進而保證分支系統能正常運行,從而使各分支系統能夠互補,最終在系統整體性的安全性得以保障,通過均衡原則實現最終追求安全的目的。
Git優劣勢:
優點:
適合分布式開發,強調個體。
公共服務器壓力和數據量都不會太大。
速度快、靈活。
任意兩個開發者之間可以很容易的解決沖突。
離線工作。
缺點:
資料少(起碼中文資料很少)。
學習周期相對而言比較長。
不符合常規思維。
代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
GitHub是基于Git的在線web頁面代碼托管平臺,可以選擇付費服務。
Gitlab可以認為是一個開源的GitHub,兩者沒有直接聯系。
一句話區分,git是管理工具,github是在線的基于git的平臺(或者叫做服務)。gitlab和github一樣,也是一個基于git的提供web界面的代碼管理平臺。
二、安裝SVN
# yum install -y subversion
創建版本庫
# mkdir -p /data/svnroot/myproject ? //該目錄路徑可自定義
# svnadmin create /data/svnroot/myproject ? ? //在這個目錄下初始化一些文件
# cd !$/conf ? #authz為權限配置文件,passwd為密碼文件,svnserve.conf為SVN倉庫的配置文件。
#?vim?authz??//配置文件新增內容如下: [groups] admins?=?aming,user1???//加到用戶組的下面 [/] @admins?=?rw???//@后面跟組名 *?=?r???//除了admins組以外的所有人只有只讀的權限。 [myproject:/] user1?=?rw #?myproject指項目名,這種用法適合于/data/svnroot/有多個項目的情況下,這只是其中一個項目而已。 #?帶冒號指的是一個項目名,這里只有一個項目,可以在這下面創建子目錄dir1,dir2。可以寫成[/dir1]、[/dir2]的形式。 #?兩種不同的形式表達而已。一種是[/dir1]、一種是[myproject:/],一個意思。因為這里只有一個項目。
aliases:別名
groups:用戶組
[/]:指的是/data/svnroot/myproject這個目錄。
倉庫里面的目錄或者項目里面的目錄,針對這些項目配置的關于用戶和組的讀寫權限:
[/foo/bar]
[repository:/baz/fuz]
#?vim?passwd??//[users]下新增 [users] aming?=?aming_!(*$123?????##左邊是用戶,右邊是密碼。 user1?=?user1_^^^123 user2?=?user2-***123 #?vim?svnserve.conf [general]??##在下面增加這5行內容 anon-access?=?none??##匿名用戶,沒有權限 auth-access?=?write??##被授權的用戶,有寫權限 password-db?=?passwd??##用戶密碼存儲位置 authz-db?=?authz??##權限控制文件位置,這里只寫一個字符串,表示這個字符串就是一個文件名,位置在當前目錄下,針對svnserve.conf的相對路徑。 realm?=?/data/svnroot/myproject??##表示對哪一個項目生效,絕對路徑。 #?svnserve?-d?-r?/data/svnroot/???//啟動SVN,-d:deamon的形式,后臺啟動;-r:指定SVN所在路徑;后面也可以跟到項目名。 #?ps?aux?|grep?svn root???????1621??0.0??0.0?162200???656??????????Ss???19:53???0:00?svnserve?-d?-r?/data/svnroot/ root???????1623??0.0??0.0?112676???984?pts/0????S+???19:53???0:00?grep?--color=auto?svn #?netstat?-lntp?|grep?svn tcp????????0??????0?0.0.0.0:3690????????????0.0.0.0:*???????????????LISTEN??????1621/svnserve #?iptables?-nvL??//檢查一下有沒有防火墻規則,有的話后續操作不會太順利。
三、客戶端上使用SVN(Linux)
#?yum?install?-y?subversion??//另一臺機器上安裝,安裝好后就可以使用svn命令了。 #?mkdir?svntest #?cd?!$ #?svn?checkout?svn://192.168.93.130/myproject?--username=aming??//checkout,檢出代碼。如果你到一臺機器上,從來沒有連接過svn服務器的情況下,執行這一步以后,它就可以在本機上保存一個曾經你連接過的svnserve的用戶名和密碼。上面這條命令可以把遠程服務端的myproject項目搞到本地來。 認證領域:??/data/svnroot/myproject “aming”的密碼:?aming_!(*$123??????????//此處的密碼就是配置文件中設置的密碼 ----------------------------------------------------------------------- 注意!??你的密碼,對于認證域: ????/data/svnroot/myproject 只能明文保存在磁盤上!??如果可能的話,請考慮配置你的系統,讓?Subversion 可以保存加密后的密碼。請參閱文檔以獲得詳細信息。 你可以通過在“/root/.subversion/servers”中設置選項“store-plaintext-passwords”為“yes”或“no”, 來避免再次出現此警告。 ----------------------------------------------------------------------- 保存未加密的密碼(yes/no)?yes???//將密碼存在了/root/.subversion/servers下 取出版本?0。 [root@MRX?svntest]#?ls myproject #?cd?project?;?ls?-la 總用量?0 drwxr-xr-x?3?root?root?18?8月??29?18:43?. drwxr-xr-x?3?root?root?23?8月??29?18:43?.. drwxr-xr-x?4?root?root?75?8月??29?18:43?.svn [root@MRX?myproject]#?cp?/etc/fstab?. #?svn?add?./fstab??//添加到版本控制中心,把變更的想要搞到服務器上去的東西做個標記 A?????????fstab #?svn?commit?-m?"add?file"???//把文件上傳到服務器。先增加,再上傳。 #?svn?commit?-m?"add?fstab" 正在增加???????fstab 傳輸文件數據. 提交后的版本為?1。 #?svn?delete?filename??//在本地刪除 #?svn?commit?-m?"delete?filename"??//在服務器上刪除 [root@MRX?myproject]#?svn?delete?fstab? D?????????fstab [root@MRX?myproject]#?svn?commit?-m?"delete?fstab" 正在刪除???????fstab 提交后的版本為?2。 #?svn?update??//把當前目錄下的文件都更新到最新版,把本地的和服務端的同步。 #?svn?log??//查看變更日志 /root/.subversion/auth/svn.simple下的密碼文件,如果某個用戶不想存儲了,可以刪除這個文件。
四、客戶端上使用SVN(windows)
官網 https://tortoisesvn.net/index.zh.html
下載TortoiseSVN 并安裝
簡明教程 http://www.jianshu.com/p/6b3b7b915332
下載好后隨便選擇一個文件夾,比如新建一個myproject,右鍵文件夾可以看到SVN Checkout和TortoiseSVN。
第一次使用時,也要先SVN checkout,點擊之后,會彈出來一個窗口,在最上面的URL of repository里定義一下服務地址和項目地址就可以點OK了:svn://192.168.93.130/myproject。
點OK后再定義用戶名和密碼:
aming , aming_!(*$123
再點OK
試驗:
在Windows的myproject目錄下創建一個txt文檔,內容隨便寫一點。再右鍵該文檔,和在Linux上同樣的操作,TortoiseSVN→add,再右鍵SVN commit,在上方空白框內輸入add 123.txt,再點OK就可以了。
再到服務端或者另一臺客戶端上svn update同步一下,就可以看到123.txt了。
在Linux上寫了文檔,同樣的操作,再到Windows上右鍵SVN update一下,同樣可以看到這個111.txt。
#?svn?add?111.txt A?????????111.txt [root@MRX?myproject]#?svn?commit?-m?"add?111.txt" 正在增加???????111.txt 傳輸文件數據. 提交后的版本為?4。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。