Linux中利用Subversion進資料列版本設定

來源:互聯網
上載者:User
       這篇文檔記錄了在Linux(有些同樣適合於Windows)中SVN使用,配置,關於SVN,對於管理文檔,進程程式的版本控制非常優秀,但是,基於命令的方式,總是會讓人遺忘。所以本篇就把平時或將來常會用到的,記錄一下,也當作一份備忘。Code
$ svnadmin create /usr/SVN/svnDic/         # /usr/SVN/svnDic/作為SVN的中心版本庫
$ svnserve -d -r /usr/SVN/svnDic/          # svnserve的第二個選項是作為獨立“守護”進程,為此要使用-d選項.

一、開始工作:
   首先要做的就是在系統中加入一個中心版本庫,然後,使用svnserve作為svn的服務運行。修正相應的設定檔後,就可以開始真正的工作了。
   具體的樣本命令如下:

1$ svnadmin create /usr/SVN/svnDic/         # /usr/SVN/svnDic/作為SVN的中心版本庫
2$ svnserve -d -r /usr/SVN/svnDic/          # svnserve的第二個選項是作為獨立“守護”進程,為此要使用-d選項.
3   # 以上,也可以加上--listen-port=和--listen-host=選項來自訂“綁定”的連接埠和主機名稱,具體的可以看svnserve -h
4   # 我會把svnserve的命令調用加入到/etc/rc.local中,以便主機啟動後就調用該服務

    對於設定檔,需要修改的就是/usr/SVN/svnDic/conf/svnserve.conf , passwd, authz.
    svnserver.conf描述了svnserver的一些配置選項,包括所有認證和授權政策。
    passwd描述了允許登入的使用者及使用者密碼
    authz描述了認證選項。
    具體的參數設定就不累述了,可以參照《使用Subversion進資料列版本設定》這本書,裡面寫得非常詳細。
    我的設定檔如下所示,當然,為了簡便,就沒多考慮安全了。對於安全性要求比較高的場合,需要更細緻的設定。

    svnserve.conf
    [general]
    anon-access = read
    auth-access = write
    password-db = passwd
    authz-db = authz

    passwd
    [users]
    shipfi = ******

    authz
    [groups]
    [/]
    * = rw

二、具體初步操作
  (1) 匯入資料到版本庫
      $svn import /tmp/MyProject/  svn://192.168.1.1/Source/MyProject -m "initial import"
       # 拷貝使用者的一個未被版本化的分類樹到版本庫最快的方法

  (2) 列出庫中的目錄&檔案
      $svn list svn://192.168.1.1/ -R  # -R選項表示recursive

  (3) checkout
      $svn co svn://192.168.1.1/ ./   #當然,後面也可以指定相應的目錄

  (4) checkin
    一個典型的checkin操作就像這樣:
      $svn ci  <filename>  -m "eui-64.c" --force-log   #其中,更新的filename是可選的,不過,我大部分都會指定相應檔案。避免上傳不需要checkin的檔案。

三、記住svn的四個狀態。才能理解為什麼有時候commit,update操作進行不了。

1.未修改且是當前的:
       檔案在工作目錄裡沒有修改,在工作修訂版本之後沒有修改提交到版本庫。 svn
commit
操作不做任何事情, svn update不做任何事情。
2.本地已修改且是當前的
      在工作目錄已經修改,從基本修訂版本之後沒有修改提交到版本庫。本地修改沒有提交,因此 svn commit會成功的提交, svn update不做任何事情。
3.未修改且不是當前的了
      這個檔案在工作目錄沒有修改,但在版本庫中已經修改了。這個檔案最終將更新到最新版本,成為當時的公用修訂版本。 svn
commit
不做任何事情, svn update將會取得最新的版本到工作拷貝。
4.本地已修改且不是最新的
      這個檔案在工作目錄和版本庫都得到修改。一個 svn
commit
將會失敗,這個檔案必須首先更新, svn update命令會合并公用和本地修改,如果Subversion不可以自動完成,將會讓使用者解決衝突。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.