Subversion简介
Subversion?
Subversion 是一個 免費/開源 的?版本控制系統?(version control system, 簡稱 VCS), 也就是說, Subversion 可以跨越時間對文件和目錄, 以及它們的修改進行管理. 這就允許你恢復 數據的舊版本, 或檢查數據的修改歷史.?
?Subversion 的架構
?
?
基本工作周期
Subversion 支持的特性與選項非常豐富, 但是能夠在日常工作中用到的卻很 少. 日常工作中最常用到的 Subversion 操作.
典型的工作周期就像:
更新工作副本.?這會用到命令?svn update.
修改.最常見的修改就是編輯已有文件的內容, 但有時還要添加, 刪除, 復制和移動文件或目錄 — 命令?svn add,?svn delete,?svn copy?和?svn move?負責 處理工作副本的結構性調整.
審核修改.?用命令?svn status?和?svn diff?查看工作副本發生了哪些變化.
修正錯誤.?人無完人, 在審核修改時用戶可 能會發現某些修改是不正確的. 有時候修正錯誤最簡單的方式是撤消所有的 修改, 重新開始. 命令?svn revert?可以把文件或目 錄恢復到修改前的樣子.
解決沖突 (合并其他人的修改).?當一個用戶 正在修改文件時, 其他人可能已經把自己的修改提交到了服務器上. 為了防止 在提交修改時, 由于工作副本過舊導致提交失敗, 用戶需要把其他人的修改 更新到本地, 用到的命令是?svn update. 如果命令 的執行結果有沖突產生, 用戶需要用命令?svn resolve?解決沖突.
發布 (提交) 修改.?命令?svn commit?把工作副本的修改提交到倉庫中, 如果修改 被接受, 其他用戶就可以看到這些修改.
?
基本用法:
出去上面那些,還有一下比較常用的如下:
在版本庫目錄下:? svn? ?+? ?help ,? import , list , checkout , status , log , cat , annonate , lock , changelist , copy , merge .
?
倉庫的定義
如果站在文件瀏覽器 (例如 Windows 資源管理器) 或基于命令行的文件 系統導航工具來看, Subversion 倉庫只是一個包含了眾多數據的普通目錄, 其中一些子目錄包含了人類可讀的配置文件, 還有些子目錄包含的是人類不可 讀的文件.?
基本組件:
# ls
conf db format hooks locks README.txt
?conf/? ?存放配置文件的目錄
db/? 該目錄包含了與所有版本化數據相關的數據
format??該文件描述了倉庫的內部組織結構. (目錄?db/?有時候也會有一個叫做?format?的文件, 這個?format?僅僅是在描述?db/?的內容, 這兩個?format?之間并沒有關系.)
hooks/??該目錄包含了鉤子腳本模板和已安裝的鉤子腳本.
locks/??Subversion 用該目錄存放倉庫的鎖文件, 鎖文件用于管理倉庫的并發 訪問.
README.txt??包含了一小段內容的文本文件, 文件的內容僅僅是為了提醒計算機 用戶該文件所在的目錄是一個 Subversion 倉庫.
創建倉庫
創建 Subversion 倉庫是一件非常簡單的工作, 用到的命令是?svnadmin create.
$ # Create a repository $ svnadmin create /var/svn/repos $假設父目錄?/var/svn?已存在, 并且管理員對父 目錄擁有寫權限, 上面的命令在?/var/svn/repos?創建了一個新的倉庫, 使用的是默認的后端存儲類型 (FSFS). 你還可以利用 選項?--fs-type?顯式地指定后端存儲類型, 該選項接受 的參數是?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 遷移倉庫數據
無論遷移倉庫歷史是出于什么樣的原因,?svnadmin dump?和?svnadmin load?的用法都非常 簡單直接.?svnadmin dump?按照 Subversion 的文件 系統轉儲格式, 輸出一段范圍內的版本號. 轉儲的結果會被打印到標準輸出, 而提示性的信息則會打印到標準錯誤, 這就允許管理員把輸出重定向到文件 的同時, 在終端窗口中查看命令的狀態輸出, 例如:
$ svnlook youngest myrepos 26 $ svnadmin dump myrepos > dumpfile * Dumped revision 0. * Dumped revision 1. * Dumped revision 2. …命令執行結束時, 你將得到一個文件 (在上面的例子里, 文件名是?dumpfile), 這個文件包含了在指定的版本號范圍 內, 存放在倉庫中的所有數據. 因為?svnadmin dump?從倉庫中讀取版本號的過程和其他?“讀者”?(例如?svn checkout) 讀取倉庫的過程是一樣的, 所以 可以在任意時刻, 安全地執行?svnadmin dump.
與?svnadmin dump?配對的命令?svnadmin load?從標準輸入讀取 Subversion 倉庫的轉儲文件, 把文件中 的版本號重放到目標倉庫中. 在命令的執行過程中仍然會輸出提示性的信息, 不過這次是打印到標準輸出:
$ svnadmin load newrepos < dumpfile <<< Started new txn, based on original revision 1* adding path : A ... done.* adding path : A/B ... done.…倉庫備份
對于 Subversion 倉庫管理員來說, 有兩種備份策略—全量備份與 增量備份.
$ svnadmin hotcopy /var/svn/repos /var/svn/repos-backup得到的備份是一個完整的 Subversion 倉庫, 能夠在原倉庫出現故障時 頂替上去.
移動與刪除倉庫
Subversion 倉庫的所有數據都存放在倉庫目錄中, 所以說管理員可以使用 操作系統提供的命令—Unix 系統的?mv,?cp -a,?rm -r; Windows 系統的?move,?copy,?rmdir /s /q; 或其他圖形化文件瀏覽器提供的鼠標和菜單操作— 實現倉庫的移動, 重命名, 復制和刪除.
?
?
版本庫維護
svnadmin程序除了提供創建Subversion版本庫的功能,這個程序使你可以維護這些版本庫。
# 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-dblogsloadlslockslstxnspackrecoverrmlocksrmtxnssetlogsetrevpropsetuuidupgradeverifysvnlook是Subversion提供的用來查看版本庫中不同的修訂版本和事務(正在產生的修訂版本)。這個程序不會修改版本庫內容-這是個“只讀”的工具。
# 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?
轉載于:https://www.cnblogs.com/zwj-linux/p/11599688.html
總結
以上是生活随笔為你收集整理的Subversion简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fc安卓模拟器_fc模拟器pc版下载-f
- 下一篇: 微星武士 76 评测