Linux SVN伺服器配置以及用戶端使用

來源:互聯網
上載者:User

Linux SVN伺服器配置以及用戶端使用 SVN是一種版本管理系統,前身是CVS,是開源軟體的基石。即使在溝通充分的情況下,多人維護同一份原始碼的一定也會出現混亂的情況,版本管理系統就是為瞭解決這些問題。 SVN中的一些概念 : a. repository(原始碼庫) 原始碼統一存放的地方 b. Checkout (提取) 當你手上沒有原始碼的時候,你需要從repository checkout一份 c. Commit (提交) 當你已經修改了代碼,你就需要Commit到repository d. Update (更新) 當你已經Checkout了一份原始碼, Update一下你就可以和Repository上的原始碼同步,你手上的代碼就會有最新的變更  www.2cto.com  日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的代碼) -->作出自己的修改並調試成功 --> Commit(大家就可以看到你的修改了) 如果兩個程式員同時修改了同一個檔案呢?SVN可以Merge這兩個程式員的改動,對,合并,實際上SVN管理原始碼是 以行為單位的,就是說兩個程式員只要不是修改了同一行程式,SVN都會自動合并兩種修改。如果是同一行呢,SVN會提示檔案Confict, 衝突,需要手動確認。 TortoiseSVN簡介 TortoiseSVN 是 Subversion 版本控制系統的一個免費開源用戶端,可以超越時間的管理檔案和目錄。檔案儲存在中央版本庫,除了能記住檔案和目錄的每次修改以外,版本庫非常像普通的檔案 伺服器。你可以將檔案恢複到過去的版本,並且可以通過檢查曆史知道資料做了哪些修改,誰做的修改。這就是為什麼許多人將 Subversion 和版本控制系統看作一種“時間機器”。 SVN的配置 1,配置好yum,檢查subversion安裝包 [root@svn ~]# yum list |grep subversion subversion.i386 1.4.2-4.el5_3.1 base subversion-devel.i386 1.4.2-4.el5_3.1 base subversion-javahl.i386 1.4.2-4.el5_3.1 base subversion-perl.i386 1.4.2-4.el5_3.1 base subversion-ruby.i386 1.4.2-4.el5_3.1 base [root@svn ~]# yum -y install subversion 測試安裝是否成功: svnserve --version 斷行符號顯示版本說明安裝成功[root@svn ~]# netstat –nat 查看預設TCP 3690連接埠是否監聽. 2,建立svn版本庫 [root@svn /]# mkdir -p /data/svndata [root@svn /]# svnadmin create /data/svndata/winne winne為版本庫名稱 3,svnserve設定檔概述 svnserve.conf -- svn服務組態檔,該檔案版本庫目錄的conf目錄下。 passwd -- 使用者名稱口令檔案,該檔案名稱在檔案svnserve.conf中指定,預設為同目錄下的。 authz -- 許可權設定檔,該檔案名稱也在檔案svnserve.conf中指定,預設為同目錄下的。 conf/svnserve.conf 檔案 配置項分為以下5項: anon-access 控制非鑒權使用者訪問版本庫的許可權。 auth-access 控制鑒權使用者訪問版本庫的許可權。 password-db 指定使用者名稱口令檔案名稱。 authz-db 指定許可權設定檔名,通過該檔案可以實現以路徑為基礎的存取控制。 realm 指定版本庫的認證域,即在登入時提示的認證網域名稱稱。若兩個版本庫的 認證域相同,建議使用相同的使用者名稱口令資料檔案 注:1.4版本anon-access = read 參數的bug . anon-access = read時 用戶端Checkout(提取)的時候會有Not authorized to open root of edit operation"錯誤,改為none參數正常, conf /Passwd 檔案 user1 = user1 user2 = user2 conf /authz 檔案 [groups] 設定組 admin = user1 [/] 根目錄使用權限設定(就是“svndata”這個檔案夾) user1 = rw 使用者1許可權是:可讀寫 user2 = r 使用者2許可權是:可讀,不可寫 @admin = rw 設定組許可權 [svndata:/winne] 設定根目錄下“winne”檔案夾的許可權 user1 = rw user2 = r …以此類推 4,啟動和停止SVN服務 啟動SVN服務: [root@svn ~]# svnserve -d -r /data/svndata/ -d表示後台運行 -r 指定根目錄是 /data/svndata/ 停止SVN服務: ps -aux |grep svn kill -9 進程殺掉 用戶端使用 Windows用戶端TortoiseSVN的使用 1, TortoiseSVN 用戶端的安裝 測試選擇的是TortoiseSVN 1.6.5用戶端 付中文漢化包. 2,用戶端的檔案更新至伺服器(user1操作) 建立一個空目錄,右鍵Checkout (提取) svn://192.168.103.26/winne 輸入passwd檔案中的授權使用者帳號就可以了 在目錄中加入一些檔案測試. 然後在空白地方右鍵點TortoiseSVN-> ADD 添加列表到伺服器端.此時並沒有真正拷貝到伺服器上,需再在Commit(提交)操作才會拷貝 在版本庫瀏覽器中就可以看到剛才提交的檔案了,此時提交的版本為1. 3,用戶端在伺服器上拉讀取資料(user2操作) User2 在機器上建立一個空目錄user2 , 右鍵Checkout (提取) 填入地址: svn://192.168.103.26/winne 輸出至G:\user2 確定 增加一個new.txt的檔案,然後Commit (提交)之後提示許可權出錯,user2沒有寫的許可權,換成user1 的身份才可以提交成功. Linux用戶端的使用 用戶端操作流程一般是: 使用者A: checkout (提取) -> add (添加新檔案) -> commit (提交) 使用者B: SVN log(查看更新) -> update(更新版本) 1,SVN的安裝 yun –y install subversion 2,Linux svn的常用命令 ()內為命令簡寫. checkout (co) 提取 commit (ci) 提交 update (up) 更新 list (ls) 列表 3, checkout (co) 提取 svn伺服器上的檔案 (user1)操作流程 [root@TEST ~]# svn co svn://192.168.103.26/winne Authentication realm: My First Repository Password for 'root': Authentication realm: My First Repository Username: user1 /輸入使用者名稱 Password for 'user1': /輸入密碼 A winne/Cosmic Ride - BeFour.lrc A winne/20070716171657126.pdf A winne/svnbook.pdf revision 1. / checkout (co) 提取成功,看到Checked out版本為1 注:可以使用帶使用者名稱和密碼的訪問: svn co --username user1 --password user1 svn://192.168.103.26/winne [root@TEST ~]# ll drwxr-xr-x 3 root root 4096 Sep 23 09:02 winne /winne目錄是SVN自動產生的 drwxr-xr-x 2 root root 4096 Jul 30 02:06 tasks [root@TEST ~]# cd winne [root@TEST winne]# ll total 2868 -rw-r--r-- 1 root root 1566968 Sep 23 08:53 20070716171657126.pdf -rw-r--r-- 1 root root 2397 Sep 23 08:53 Cosmic Ride - BeFour.lrc -rw-r--r-- 1 root root 1354300 Sep 23 08:53 svnbook.pdf 4,user1修改檔案並提交 [root@TEST winne]# vi testsvn.txt [root@TEST winne]# svn add testsvn.txt /將testsvn.txt添加到庫中 A testsvn.txt [root@TEST winne]# svn commit -m "test" testsvn.txt /注釋為test Adding testsvn.txt Transmitting file data . Committed revision 2. /版本更新為2了 5,user2回window用戶端更新版本 回到Windows的用戶端看日誌, 版本已經更新為2了,注釋test,用戶端update就可以更新到新的版本了. 6, Windows用戶端的版本復原 選中菜單中的update to verisiom ,選擇版本1即可. 7,Linux版本復原操作: [root@TEST winne]# svn up -r 1 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.