linux下svn使用小結 建立 添加倉庫 版本管理__linux

來源:互聯網
上載者:User
(1): 建立svn倉庫路徑
mkdir  -p  /opt/svn/project1
svnadmin  create  /data/svn/project1



注意:為了規範:一般在項目目錄下再建立:
//先建立好目錄 dev 和pub可以放連個目錄下,匯入同一個源也可以 源就是原始代碼 (svn import /home/game/park_dev/)
mkdir  -p   /opt/svn/projec1/xxx_dev  開發
mkdir  -p   /opt/svn/projec1/xxx_pub 發布


接下來 我用xxx_server 代表項目project1的名字

(2):匯入項目原始碼 # svn import [源路徑][目標版本庫路徑] -m [日誌資訊]
//例如:
    ps:原始碼要是別的項目拷貝過來的,請刪除原來的.svn檔案,,不然你會悲劇的 
    svn import /home/game/xxx_dev/    file:///data/svn/xxx_server/xxx_dev  -m "Initial import"

(3):修改設定檔:這就是給指定的倉庫添加使用者權限了,多人開發的時候很需要的, 防止策劃亂傳檔案,哈哈哈,都是策劃的錯


    a   /opt/svn/project1/conf/svnserve.conf
          [general]
          anon-access = none
          auth-access=write
          password-db=passwd
          auth-db=authz


    b  /opt/svn/project1/conf/passwd

            xxx=****             //  使用者名稱=密碼

    c  anon-access = read
auth-access = write

authz-db = authzpassword-db = passwd

realm = xxx_server


(4):啟動svn服務

    svnserve   -d   -r    /opt/svn/     
    注意:如果在一台伺服器上同時啟動多個版本管理,那麼啟動路徑必須是所有項目倉庫的根路徑:比如
   /opt/svn/project1    /opt/svn/project2   ---------->   /opt/svn/ 








//安裝指令碼----帶建立倉庫的,不懂的可以留言給我我幫你解決


#!/bin/bash

if
        rpm -qa | grep subversion


then
        echo "1 svn已經安裝了"
        exit
else
        echo "1 未檢測到svn安裝, 下載subversion"
        yum install subversion -y
fi


if [[ -d "/data/svn" ]]; then
        echo "2.1 /data/svn/已經建立"
else
        mkdir /data/svn/
        echo "2.1 /data/svn/建立成功"
fi


echo "2.2:配置:svnserver添加資料倉儲地址"
svnserve -d -r /data/svn/


echo "3.建立版本庫"
svnadmin create /data/svn/tech_manage/


echo "4.加入到開機啟動項"  這樣就方便使用了,開機的時候就直接啟動了
echo svnserve -d -r /data/svn/ >> /etc/rc.local



//基礎的操作一大堆,我就不一一舉例了用別人寫好的吧

Subversion命令匯總

svn 命令共同的選項

--targets list 讀取list並將其解釋為一個將要操作的參數列表

--non-recurisive, –N 只操作單個目錄,不處理子目錄

--verbose, –v 列印額外的資訊

--quiet, –q 列印的資訊儘可能少

--username,  name 指定在串連授權時使用的使用者名稱

--password, pawd 指定要使用的密碼

--no-auth-cache 不要緩衝身份令牌

--non-interactive 不要提示輸入額外的資訊

--config-dir  dir  從dir讀取使用者配置

--editor-cm cmd 使用cmd作為日誌訊息的編輯器

svn add

把檔案及目錄的名稱添加給版本控制系統。他們會在下次提交時被添加到項目倉庫

svn add path

--auto-props 在添加他們的時候自動化佈建檔案的屬性

--no-auto-props 禁用自動屬性設定

svn blame

顯示檔案每行的版本及作者資訊

--revision, –r rev 如果指定的rev是單個版本,顯示該版本作者資訊。如果是範圍rev1:rev2, 顯示rev2版本作者的資訊,但只檢查版本到rev1.

svn cat

輸出指定檔案或者URL的內容

svn cat target…

--revision, –r rev

svn checkout

從項目倉庫牽出一個工作拷貝

svn checkout url…path

如果沒有指定path,簽出的本地目錄名使用URL的base name.

svn cleanup

清理工作拷貝,移除鎖,完成未完成的操作,等等。

svn cleanup path…

svn commit path

把改動從你的工作拷貝發送到項目倉庫

--message, –m msg 使用msg作為提交日誌訊息。

--file, –F file 使用file的內容作為提交日誌訊息。

--no-unlock 不要在提交的時候釋放鎖。

svn copy

在工作拷貝或者項目倉庫中製造包括曆史在內的複本

svn copy src dest

src和dest可以是工作拷貝(WC)的路徑或者URL.

src dest 效果……

WC WC 拷貝並添加

WC URL 立即提交WC的拷貝到URL

URL WC 簽出URL到WC, 添加

URL URL 完整伺服器端拷貝;用於製作分支和打標籤

--revision, –r rev要拷貝的src的版本。只在src是項目倉庫的URL時才有意義。

svn delete target

從項目倉庫刪除檔案或者目錄。如果target是工作拷貝中的檔案或者目錄,它被從工作拷貝中移除並且預計在下次提交時刪除掉。如果target是項目倉庫URL,通過一次立即的提交從項目倉庫中刪除。

--message, –m msg

--file, –F file

svn diff

顯示兩個路徑之間的差異

svn diff –r rev1:rev2 target…

svn diff oldurl newurl

svn export

建立一個無版本記錄的拷貝.

svn export –r rev URL path

從項目倉庫的指定URL匯出一個乾淨的分類樹到path中,如果指定了rev參數,匯出rev版本的,否則到處最新版本。

svn import

提交一個無版本的檔案或者樹到項目倉庫

svn import path URL

svn info

顯示檔案或者目錄的資訊。

svn list

列出項目倉庫中的目錄條數。

svn lock

鎖住檔案讓其它使用者不能提交改動。

svn lock target

--message, –m msg 使用msg作為鎖資訊訊息

--force 強制加鎖成功,通過從其他使用者或者工作拷貝把鎖給偷過來。

svn log

顯示一些版本或者檔案的日誌訊息.

--stop-on-copy 在遍曆曆史的時候不要穿越拷貝(對於尋找分支的起點很有用)

svn merge

把兩個來源的差異應用給工作拷貝路徑。

svn merge –r rev1:rev2  source wcpath

svn mkdir

建立版本控制下的新目錄

svn mkdir target

svn move src dest

移動或者重新命名工作拷貝或者項目倉庫中檔案或者目錄。

--revision, –r rev使用版本rev作為源來執行這次移動。

svn propdel

刪除檔案或者目錄的屬性

svn propdel propname path…

svn propedit

編輯檔案或者目錄的屬性

svn propedit propname path…

svn propget

列印檔案或者目錄的屬性值

svn propget propname path…

--strict 禁用額外的換行和其它的美化措施(在把二進位屬性重新導向到檔案時會有用處)

svn proplist

列出檔案或者目錄的所有屬性

--verbose

--recursive

--revision, –r rev 列出path在版本rev定義的屬性

svn propset(pset, ps)

svn propset propname propval path…

--file, –F file 讀取file的內容,使用它作為屬性值.

--recursive

--encoding  enc 把值作為用enc編碼的字元集

svn resolved

移除工作拷貝檔案或者目錄的衝突狀態

--recursive

svn revert

恢複工作拷貝的檔案(撤銷最新的本地修改)

svn revert path 這個命令不需要網路連接

--recursive

svn status

列印工作拷貝中檔案或者目錄的狀態

svn status path…

--show-updates, –u 聯絡伺服器顯示更新資訊

--no-ignore 忽視預設設定和svn:ignore屬性設定的忽略項

--non-recursive, –N

--verbose, –v

svn switch

把工作拷貝轉向到其他的URL

svn switch URL path

更新工作拷貝讓其使用項目倉庫的新URL.這個行為類似svn update 而且是一種把工作拷貝轉向到同一項目倉庫中的分支或者標籤的辦法。

--revision, –r rev 轉向到版本rev

--non-recursive, –N

--diff3-cm 使用cmd作為合并命令

svn unlock

解開工作拷貝檔案或者項目倉庫URL的鎖。

svn unlock target…

--force 砸壞現有對target的鎖,甚至它不是被當前工作拷貝所擁有的。

svn update

把改動從項目倉庫帶到工作拷貝來。

svn update path…

--revision, –r rev 更新到版本rev

--non-recrusive, –N

--diff3-cmd




聯繫我們

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