SVN的基本使用
SVN 的基本指令介, 主要考自下述:
- SubTrain - Open Source Trainings for Subversion: 教如何使用 SVN
- Version Control with Subversion
- Version Control with Subversion(中文版子)
- Version Control with Subversion?PDF - 作者: 邱茂森(Google 找到的, 相用的介 和 明)
主要 SubTrain 的 PPT 前面看一看, 基就大概都知道了, 後面太了, 目前用不到, 以後再看. XD
PS: 如果不知道 SVN 是什, 可此文:?版本控制系, 面案看完, 就很清楚了?
?
先看 SVN Trunk/Tags/Branches 目 的 架 和 用途:(英文明自 SubTrain PPT)
- trunk: Main line of development(主, 主要都由在 trunk)
- tags: Releases (想要 Release 的後, 就 Tag, 以後可以依 Tag 找回之前版本的料)
- branches: Preparation of release, bug fixing(分支, 可以某些功能切出, 或者 bug fix 等切成分支, 等做完後再用 Merge 合回)
SVN 基本功能:
Import: 整 project_directory 的料 import svn 面
- svn import project_directory http://DOMAIN/svn_project
- svn import project_directory file:///SVN_PATH/svn_project
Checkout: (checkout 可成 co), 料 checkout 回
- svn co http://SVN_PATH/svn_project
- svn co file:///SVN_PATH/svn_project
- svn co -r 12 file:///var/lib/svn/dev/projects # 出第12版的 projcets code
List: (list 可成 ls), 看上面有哪些案/料
- svn ls http://SVN_PATH/svn_project
- svn ls file:///SVN_PATH/svn_project
Update: (update 可成 up), 目前更新成 SVN 上最新版本.
- SVN_CHECKOUT_DIR$ svn up
Commit: (commit 可成 ci), 目前所做的修改 commit 回 svn
- SVN_CHECKOUT_DIR$ svn ci
Status: (status 可成 st), 看目前案/ 跟 SVN 上的版本有哪些不同
- SVN_CHECKOUT_DIR$ svn st
Add: 此 案/目 新增 svn
- SVN_CHECKOUT_DIR$ svn add filename 或 svn add directory
MV: 改名, 且此案之前要留下
- SVN_CHECKOUT_DIR$ svn mv filename new_filename
Revert: 原次的修改, 回到前一版的案(未 commit 前可用)
- SVN_CHECKOUT_DIR$? svn revert [file | directory]
SVN 案:
- ?: 此案不存在 SVN 面
- A: 此次新增的案
- C: 此案已有人改, 合不成功, 需要人工介入
- D: 此次移除的案
- M: 此案有修改
- U: 此案有被更新
再是比一, 下述例自 SubTrain 的教 PPT:
建立一 branch
- svn copy http://svnserver/calc/trunk http://svnserver/calc/branches/my-calc-branch -m 'create a branch'?
建立 Release Tags:
- svn copy http://svnserver/calc/trunk http://svnserver/calc/tags/Release-1.0.0 -m 'create Release tags for Release 1.0.0'
合版本的案 # 考自:?用 Subversion 的 Merge Undo
- svn merge -r REV1:REV2 {path/to/workingcopy}
- ?(UNDO) svn merge -r 1234:1233 ...
- ?(MERGE)svn merge -r 1233:1234 ...
- svn merge --dry-run -r 343:344 http://svn.example.com/repos/calc/trunk
有 "C" 理完後, 用 resolved? 自生的案除, 才能正常 commit:
- svn resolved filename # 子下就把自生 diff 等的案除
找版本有什不同 diff:
- svn diff # 自以在案跟 SVN 最新版做 diff
- svn diff -r9237:9238
Info: 列出在路, 版本, 最後一次修改日期 ... 等
- svn info
Log: 如果入, 把所有 commit log 都列出
- svn log
- svn log -l 10 # 示 10 (最新 10 Log)
- svn log -c 100 # 示 revision 100 的 Log
- svn log -v -c 100 # 示? revision 100 的 Log
Propset (propset, pset, ps): 版本控制都有些特殊 Keyword 定, 如 Id 就是最常用的, 定方法如下:
- 在案找地方加入 $Id$
- 定此案要能吃 Id 的 Keyword: svn ps svn:keywords 'Id' filename (只需一次即可, 之後就不用再)
- svn ci 後, $Id$ 自代成?$Id:filename 年月日分秒 username $?的
- svn help ps 可以看到有哪些 Keyword 可以用, 即 Keyword 的明.(ex: URL, Author, Date, Rev, Id 等.)
其它 SVN Client:
- Windows Client:?TortoiseSVN
- SVK:?The SVK version control system
SVK 相介:
- svk 分散式版本控制之道
- 使用 svk 建立分支
- Version Control with SVK
其它相
- Subversion 版本控制系的基念?- 此篇有版本系如何使用 等等的基本念, 建.
- Subversion post-commit 的解以及注意事
- post-commit 如果有行法自 post-commit?- post-commit 前, 建先跑 export LANG=zh_TW.UTF-8(看系系定)
- svn info
- svn resolved filename # 子下就把自生 diff 等的案除
- svn copy http://svnserver/calc/trunk http://svnserver/calc/tags/Release-1.0.0 -m 'create Release tags for Release 1.0.0'
- svn copy http://svnserver/calc/trunk http://svnserver/calc/branches/my-calc-branch -m 'create a branch'?
- SVN_CHECKOUT_DIR$? svn revert [file | directory]
- SVN_CHECKOUT_DIR$ svn mv filename new_filename
- SVN_CHECKOUT_DIR$ svn add filename 或 svn add directory
- SVN_CHECKOUT_DIR$ svn st
- SVN_CHECKOUT_DIR$ svn ci
- SVN_CHECKOUT_DIR$ svn up