代碼管理平臺—svn

一、什麼是svn?

SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上不少版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多我的共同開發同一個項目,共用資源的目的。 官網:https://tortoisesvn.net/windows

二、Linux服務端(192.168.6.120)下安裝使用svn

輸入命令:bash

[root@jin-120 ~]# yum install -y subversion服務器

建立版本庫:svn

[root@jin-120 ~]# mkdir -p /data/svnroot/myproject
[root@jin-120 ~]# svnadmin create /data/svnroot/myproject
[root@jin-120 ~]# cd !$
cd /data/svnroot/myproject
[root@jin-120 /data/svnroot/myproject]# ls
conf  db  format  hooks  locks  README.txt
[root@jin-120 /data/svnroot/myproject]# cd conf
[root@jin-120 /data/svnroot/myproject/conf]# ls
authz  passwd  svnserve.conf

其中,authz爲權限配置文件,passwd爲密碼文件。加密

編輯配置文件authz,內容以下:.net

admins = zhangjin,user1
[/]
@admins = rw
*= r
[myproject:/]
user1 = rw

而後編輯密碼文件passwd,內容以下:開放源代碼

[users]
aming = 123456
user1 = 123456

再編輯svnserve.conf文件,內容以下:設計

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/svnroot/myproject

保存配置文件後,啓動svn服務3d

[root@jin-120 /data/svnroot/myproject/conf]# svnserve -d -r /data/svnroot 查看svn服務是否啓動成功 版本控制

以下圖可見,svn服務監聽的端口爲3690

三、Linux客戶端(192.168.6.123)下進行svn的同步操做

[root@jin-123 ~]#yum install -y subversion
[root@jin-123 ~]# mkdir svntest
[root@jin-123 ~]# cd !$
cd svntest
[root@jin-123 ~/svntest]# svn checkout svn://192.168.6.120/myproject --username=zhangjin
認證領域: <svn://192.168.6.120:3690> /data/svnroot/myproject
「zhangjin」的密碼: 

-----------------------------------------------------------------------
注意!  你的密碼,對於認證域:

   <svn://192.168.6.120:3690> /data/svnroot/myproject

只能明文保存在磁盤上!  若是可能的話,請考慮配置你的系統,讓 Subversion
能夠保存加密後的密碼。請參閱文檔以得到詳細信息。

你能夠經過在「/root/.subversion/servers」中設置選項「store-plaintext-passwords」爲「yes」或「no」,
來避免再次出現此警告。
-----------------------------------------------------------------------
保存未加密的密碼(yes/no)?yes
取出版本 0。
[root@jin-123 ~/svntest]# cd myproject/
[root@jin-123 ~/svntest/myproject]# ll -a
總用量 0
drwxr-xr-x. 3 root root 18 4月   4 19:43 .
drwxr-xr-x. 3 root root 23 4月   4 19:43 ..
drwxr-xr-x. 4 root root 75 4月   4 19:43 .svn

能夠看到,在客戶端上也同步了服務端上的myproject目錄。

那麼,如何在客戶端和服務端上進行文件的同步呢?

咱們首先在客戶端上覆制一份文件/etc/passwd:

[root@jin-123 ~/svntest/myproject]# cp /etc/passwd .
[root@jin-123 ~/svntest/myproject]# ls
passwd

而後使用命令svn add passwd把文件passwd添加到版本控制中心:

[root@jin-123 ~/svntest/myproject]# svn add passwd
A         passwd

再用命令svn commit -m "add passwd"把文件上傳到服務器:

[root@jin-123 ~/svntest/myproject]# svn commit -m "add passwd"
正在增長       passwd
傳輸文件數據.
提交後的版本爲 1。

在服務端上使用命令svn up把當前目錄下的文件都更新到最新版:

[root@jin-120 /data/svnroot/myproject]# svn up
正在升級 '.':
已還原「passwd」
版本 1。
[root@jin-120 /data/svnroot/myproject]# ls
conf  db  format  hooks  locks  passwd  README.txt

能夠看到,在當前目錄下,也生成了passwd文件。

還能夠在服務端上刪除文件:

[root@jin-120 /data/svnroot/myproject]# svn delete passwd
D         passwd
[root@jin-120 /data/svnroot/myproject]# svn commit -m "del passwd"
正在刪除       passwd

提交後的版本爲 2。

而後在和客戶端上執行svn up命令:

[root@jin-123 ~/svntest/myproject]# ls
passwd
[root@jin-123 ~/svntest/myproject]# svn up
正在升級 '.':
D    passwd
更新到版本 2。
[root@jin-123 ~/svntest/myproject]# ls

能夠看到,客戶端上的passwd文件也被同步刪除了。

此外,還能夠用命令svn log查看變動日誌:

[root@jin-123 ~/svntest/myproject]# svn log
------------------------------------------------------------------------
r2 | zhangjin | 2019-04-04 20:17:38 +0800 (四, 2019-04-04) | 1 行

del passwd
------------------------------------------------------------------------
r1 | zhangjin | 2019-04-04 19:53:19 +0800 (四, 2019-04-04) | 1 行

add passwd
------------------------------------------------------------------------

四、windows下使用svn和服務端同步:

在官網下載安裝包並安裝: 而後在windows下新文件夾myproject,在此文件夾裏用鼠標右鍵選擇SVN Checkout,在彈出的對話框中輸入服務端的倉庫地址:

點「OK」,此時會彈出一個認證窗口,填寫用戶名和密碼後再點擊「OK」:

此時就能夠進行同步了。

在windows此目錄中,新建一個文件test_svn.txt 而後鼠標右鍵,選擇「TortoiseSVN」-->"Add"-->SVN Commit,此時會彈出一個窗口:

而後在Linux服務端上執行命令svn up,便可查看到文件已經同步到服務端上了:

一樣,在Linux服務端上新建文件demo.txt,而後執行如下命令:

[root@jin-120 /data/svnroot/myproject]# echo "hello world" >> demo.txt
[root@jin-120 /data/svnroot/myproject]# ls
conf  db  demo.txt  format  hooks  locks  README.txt  test_svn.txt
[root@jin-120 /data/svnroot/myproject]# svn add demo.txt
A         demo.txt
[root@jin-120 /data/svnroot/myproject]# svn commit -m "add demo.txt"
正在增長       demo.txt
傳輸文件數據.
提交後的版本爲 4。

在windows下的myproject文件夾右鍵,選擇Svn Update,此時會彈出一個窗口:

點「OK」按鈕,並進入myproject文件夾下查看是否已同步成功:

相關文章
相關標籤/搜索