日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Subversion简介

發(fā)布時(shí)間:2024/1/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Subversion简介 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Subversion?

Subversion 是一個(gè) 免費(fèi)/開源 的?版本控制系統(tǒng)?(version control system, 簡(jiǎn)稱 VCS), 也就是說(shuō), Subversion 可以跨越時(shí)間對(duì)文件和目錄, 以及它們的修改進(jìn)行管理. 這就允許你恢復(fù) 數(shù)據(jù)的舊版本, 或檢查數(shù)據(jù)的修改歷史.?

?Subversion 的架構(gòu)

?

?

基本工作周期

Subversion 支持的特性與選項(xiàng)非常豐富, 但是能夠在日常工作中用到的卻很 少. 日常工作中最常用到的 Subversion 操作.

典型的工作周期就像:

  • 更新工作副本.?這會(huì)用到命令?svn update.

  • 修改.最常見的修改就是編輯已有文件的內(nèi)容, 但有時(shí)還要添加, 刪除, 復(fù)制和移動(dòng)文件或目錄 — 命令?svn add,?svn delete,?svn copy?和?svn move?負(fù)責(zé) 處理工作副本的結(jié)構(gòu)性調(diào)整.

  • 審核修改.?用命令?svn status?和?svn diff?查看工作副本發(fā)生了哪些變化.

  • 修正錯(cuò)誤.?人無(wú)完人, 在審核修改時(shí)用戶可 能會(huì)發(fā)現(xiàn)某些修改是不正確的. 有時(shí)候修正錯(cuò)誤最簡(jiǎn)單的方式是撤消所有的 修改, 重新開始. 命令?svn revert?可以把文件或目 錄恢復(fù)到修改前的樣子.

  • 解決沖突 (合并其他人的修改).?當(dāng)一個(gè)用戶 正在修改文件時(shí), 其他人可能已經(jīng)把自己的修改提交到了服務(wù)器上. 為了防止 在提交修改時(shí), 由于工作副本過(guò)舊導(dǎo)致提交失敗, 用戶需要把其他人的修改 更新到本地, 用到的命令是?svn update. 如果命令 的執(zhí)行結(jié)果有沖突產(chǎn)生, 用戶需要用命令?svn resolve?解決沖突.

  • 發(fā)布 (提交) 修改.?命令?svn commit?把工作副本的修改提交到倉(cāng)庫(kù)中, 如果修改 被接受, 其他用戶就可以看到這些修改.

  • ?

    基本用法:

    出去上面那些,還有一下比較常用的如下:

    在版本庫(kù)目錄下:? svn? ?+? ?help ,? import , list , checkout , status , log , cat , annonate , lock , changelist , copy , merge .


    ?

    倉(cāng)庫(kù)的定義

    如果站在文件瀏覽器 (例如 Windows 資源管理器) 或基于命令行的文件 系統(tǒng)導(dǎo)航工具來(lái)看, Subversion 倉(cāng)庫(kù)只是一個(gè)包含了眾多數(shù)據(jù)的普通目錄, 其中一些子目錄包含了人類可讀的配置文件, 還有些子目錄包含的是人類不可 讀的文件.?

    基本組件:

    # ls
    conf db format hooks locks README.txt

    ?conf/? ?存放配置文件的目錄

    db/? 該目錄包含了與所有版本化數(shù)據(jù)相關(guān)的數(shù)據(jù)

    format??該文件描述了倉(cāng)庫(kù)的內(nèi)部組織結(jié)構(gòu). (目錄?db/?有時(shí)候也會(huì)有一個(gè)叫做?format?的文件, 這個(gè)?format?僅僅是在描述?db/?的內(nèi)容, 這兩個(gè)?format?之間并沒有關(guān)系.)

    hooks/??該目錄包含了鉤子腳本模板和已安裝的鉤子腳本.

    locks/??Subversion 用該目錄存放倉(cāng)庫(kù)的鎖文件, 鎖文件用于管理倉(cāng)庫(kù)的并發(fā) 訪問(wèn).

    README.txt??包含了一小段內(nèi)容的文本文件, 文件的內(nèi)容僅僅是為了提醒計(jì)算機(jī) 用戶該文件所在的目錄是一個(gè) Subversion 倉(cāng)庫(kù).

    創(chuàng)建倉(cāng)庫(kù)

    創(chuàng)建 Subversion 倉(cāng)庫(kù)是一件非常簡(jiǎn)單的工作, 用到的命令是?svnadmin create.

    $ # Create a repository $ svnadmin create /var/svn/repos $

    假設(shè)父目錄?/var/svn?已存在, 并且管理員對(duì)父 目錄擁有寫權(quán)限, 上面的命令在?/var/svn/repos?創(chuàng)建了一個(gè)新的倉(cāng)庫(kù), 使用的是默認(rèn)的后端存儲(chǔ)類型 (FSFS). 你還可以利用 選項(xiàng)?--fs-type?顯式地指定后端存儲(chǔ)類型, 該選項(xiàng)接受 的參數(shù)是?fsfs?或?bdb.

    $ # Create an FSFS-backed repository $ svnadmin create --fs-type fsfs /var/svn/repos $ # Create a legacy Berkeley-DB-backed repository $ svnadmin create --fs-type bdb /var/svn/repos

    使用 svnadmin 遷移倉(cāng)庫(kù)數(shù)據(jù)

    無(wú)論遷移倉(cāng)庫(kù)歷史是出于什么樣的原因,?svnadmin dump?和?svnadmin load?的用法都非常 簡(jiǎn)單直接.?svnadmin dump?按照 Subversion 的文件 系統(tǒng)轉(zhuǎn)儲(chǔ)格式, 輸出一段范圍內(nèi)的版本號(hào). 轉(zhuǎn)儲(chǔ)的結(jié)果會(huì)被打印到標(biāo)準(zhǔn)輸出, 而提示性的信息則會(huì)打印到標(biāo)準(zhǔn)錯(cuò)誤, 這就允許管理員把輸出重定向到文件 的同時(shí), 在終端窗口中查看命令的狀態(tài)輸出, 例如:

    $ svnlook youngest myrepos 26 $ svnadmin dump myrepos > dumpfile * Dumped revision 0. * Dumped revision 1. * Dumped revision 2. …

    命令執(zhí)行結(jié)束時(shí), 你將得到一個(gè)文件 (在上面的例子里, 文件名是?dumpfile), 這個(gè)文件包含了在指定的版本號(hào)范圍 內(nèi), 存放在倉(cāng)庫(kù)中的所有數(shù)據(jù). 因?yàn)?svnadmin dump?從倉(cāng)庫(kù)中讀取版本號(hào)的過(guò)程和其他?讀者”?(例如?svn checkout) 讀取倉(cāng)庫(kù)的過(guò)程是一樣的, 所以 可以在任意時(shí)刻, 安全地執(zhí)行?svnadmin dump.

    與?svnadmin dump?配對(duì)的命令?svnadmin load?從標(biāo)準(zhǔn)輸入讀取 Subversion 倉(cāng)庫(kù)的轉(zhuǎn)儲(chǔ)文件, 把文件中 的版本號(hào)重放到目標(biāo)倉(cāng)庫(kù)中. 在命令的執(zhí)行過(guò)程中仍然會(huì)輸出提示性的信息, 不過(guò)這次是打印到標(biāo)準(zhǔn)輸出:

    $ svnadmin load newrepos < dumpfile <<< Started new txn, based on original revision 1* adding path : A ... done.* adding path : A/B ... done.…

    倉(cāng)庫(kù)備份

    對(duì)于 Subversion 倉(cāng)庫(kù)管理員來(lái)說(shuō), 有兩種備份策略—全量備份與 增量備份.

    $ svnadmin hotcopy /var/svn/repos /var/svn/repos-backup

    得到的備份是一個(gè)完整的 Subversion 倉(cāng)庫(kù), 能夠在原倉(cāng)庫(kù)出現(xiàn)故障時(shí) 頂替上去.

    移動(dòng)與刪除倉(cāng)庫(kù)

    Subversion 倉(cāng)庫(kù)的所有數(shù)據(jù)都存放在倉(cāng)庫(kù)目錄中, 所以說(shuō)管理員可以使用 操作系統(tǒng)提供的命令—Unix 系統(tǒng)的?mv,?cp -a,?rm -r; Windows 系統(tǒng)的?move,?copy,?rmdir /s /q; 或其他圖形化文件瀏覽器提供的鼠標(biāo)和菜單操作— 實(shí)現(xiàn)倉(cāng)庫(kù)的移動(dòng), 重命名, 復(fù)制和刪除.

    ?


    ?

    版本庫(kù)維護(hù)

    svnadmin程序除了提供創(chuàng)建Subversion版本庫(kù)的功能,這個(gè)程序使你可以維護(hù)這些版本庫(kù)。

    # svnadmin help general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...] Type 'svnadmin help <subcommand>' for help on a specific subcommand. Type 'svnadmin --version' to see the program version and FS modules.Available subcommands:crashtestcreatedeltifydumphelp (?, h)hotcopylist-dblogslist-unused-dblogsloadlslockslstxnspackrecoverrmlocksrmtxnssetlogsetrevpropsetuuidupgradeverify

    svnlook是Subversion提供的用來(lái)查看版本庫(kù)中不同的修訂版本和事務(wù)(正在產(chǎn)生的修訂版本)。這個(gè)程序不會(huì)修改版本庫(kù)內(nèi)容-這是個(gè)“只讀”的工具。

    # svnlook help general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...] Note: any subcommand which takes the '--revision' and '--transaction'options will, if invoked without one of those options, act onthe repository's youngest revision. Type 'svnlook help <subcommand>' for help on a specific subcommand. Type 'svnlook --version' to see the program version and FS modules.Available subcommands:authorcatchangeddatediffdirs-changedfilesizehelp (?, h)historyinfolocklogpropget (pget, pg)proplist (plist, pl)treeuuidyoungest

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/zwj-linux/p/11599688.html

    總結(jié)

    以上是生活随笔為你收集整理的Subversion简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。