svn文件
參考菜鳥教程 http://www.runoob.com/svn/svn-tutorial.html
檢視程式的版本號和版本庫訪問模組 svn --version
可用的子命令:
add
blame (praise, annotate, ann)
cat
changelist (cl)
checkout (co)
cleanup
commit (ci)
copy (cp)
delete (del, remove, rm)
diff (di)
export
help (?, h)
import
info
list (ls)
lock
log
merge
mergeinfo
mkdir
move (mv, rename, ren)
patch
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
relocate
resolve
resolved
revert
status (stat, st)
switch (sw)
unlock
update (up)
upgrade
版本庫位置 /home/ezreal/svn
安裝SVN sudo apt-get install subversion
建立目錄 sudo mkdir svn
建立版本庫 sudo svnadmin create /home/ezreal/svn/ku
4 配置 cd /home/ezreal/svn/conf sudo vim svnserve.conf
我們需要修改conf目錄下的三個檔案,authz,passwd,svnserve.conf
(1)編輯svnserve.conf
[general]
#匿名使用者不可讀
anon-access = none
#許可權使用者可寫
auth-access = write
#密碼檔案為passwd
password-db = passwd
#許可權檔案為authz
authz-db = authz
(2)編輯authz sudo vim authz
[groups]
admin= test #admin組的使用者為test
[/] #必須寫/,因為這表示從倉庫的目錄開始設定許可權
@admin = rw #admin組有rw(讀寫許可權),所有人有r(讀許可權)
* = r
註釋:這裡組的名字不一定叫admin,組的名字可以任務,admin組有多個使用者的話,可以這樣制定admin=tone,tone1,tone2等。
(3)編輯passwd檔案,設定使用者密碼
[users]
# harry = harryssecret
# sally = sallyssecret
test=123456 #設定使用者test的密碼是123456
5 啟動SVN伺服器 sudo svnserve -d -r 目錄 --listen-port 埠號 預設3690埠
啟動伺服器 sudo svnserve -d -r /home/ezreal/svn/ku
-d 已守護模式啟動
-r 指定svn版本庫根目錄,這樣是便於客戶端不用輸入全路徑,就可以訪問版本庫了。
例如:svn://ip:port/svn svn://192.168.1.9/ku svn://127.0.0.1/ku
關閉服務svnserver sudo killall svnserve
checkout檢出操作 sudo svn checkout svn://192.168.1.9/ku --username=test
檢視更改 svn diff
更新工作副本(本地倉庫)至最新版本 svn update
指定更新到哪個版本 svn update -r6
提交 svn commit -m "註釋"
檢視工作副本的狀態 svn status
將檔案新增到版本控制 svn add 檔名
放棄對檔案的修改,回退版本 svn revert 檔名
放棄對目錄的修改,回退版本 svn revert -R trunk
恢復一個已經提交的版本,為了消除一箇舊版本,我們必須撤銷舊版本里的所有更改然後提交一個新版本。這種操作叫做 reverse merge(反向合併)
首先,找到倉庫的當前版本,現在是版本 22,我們要撤銷回之前的版本,比如版本 21。
svn merge -r 22:21 readme
檢視SVN的歷史
svn log 用來展示svn 的版本作者、日期、路徑等等
svn diff 用來顯示特定修改的行級詳細資訊
svn cat 取得在特定版本的某檔案顯示在當前螢幕
svn list 顯示一個目錄或某一版本存在的檔案
svn log -r 6:8 檢視特定兩個版本間的資訊
svn log trunk/檔名 只檢視某一個檔案的版本修改資訊
svn log -l 5 -v 限定展示5條記錄的目錄資訊
svn diff -r 3 rule.txt 比較工作拷貝和版本庫 版本號為 3 的檔案 rule.txt
svn diff -r 2:3 rule.txt 比較版本庫與版本庫 版本號2和3的rule.txt檔案的變化
svn cat -r 版本號 rule.txt 只是希望檢查一個過去版本,不希望檢視他們的區別
svn list http://192.168.1.9/svn 在不下載檔案到本地目錄的情況下來察看目錄中的檔案
分支
svn copy trunk/ branches/my_branch 拷貝truck主分支,建立my_branch分支
svn status 檢視分支狀態
svn commit -m "add my_branch" 提交新增分支到版本庫
cd branches/my_branch/ 切換到my_branch分支進行開發
該分支下建立index.html檔案 新增add 提交commit
切換到 trunk 主分支,執行 svn update,然後將 my_branch 分支合併到 trunk 中
svn merge ../branches/my_branch/ 合併分支到truck主分支
ll命令檢視 該目錄下,有my_brahch分支建立的檔案
最後 將合併好的 trunk 提交到版本庫中 svn commit -m "註釋"
標籤(app版本號)
svn copy trunk/ tags/v1.0 我們在本地工作副本建立一個 tag標籤v1.0
面的程式碼成功完成,新的目錄將會被建立在 tags 目錄下 ls tags/ ls tags/v1.0/
svn status 檢視狀態
svn commit -m "tags v1.0" 提交tag內容
認證配置無效 賬戶名和密碼都對 怎麼改