读《Subversion 权威指南》(svnbook-1.5-final-zh.pdf)的一些记录,怕以后忘了。重点是第4章。
1. 常用SVN命令表
命令
|
说明
|
svn up/diff/commit
|
可用-r指定版本
|
svn diff –r 2:3 a.c
svn diff –c 3 a.c
|
比较repo中两个版本的差异
-c表示--change
|
svn status –v
svn status –u –v
|
Verbose
-u表示--show-updates,显示可更新文件(*)
|
svn log –v
svn log -g
|
verbose
-g表示—use-merge-history,对merge的改动显示原始commit的人,例子见《Subversion 权威指南》Section 4.4.6
|
svn revert –R .
|
取消本地修改
|
2. 很实用的“非”常用命令表
命令
|
说明
|
例子
|
svnadmin create
|
新建repo
|
$ svnadmin create /var/svn/newrepos
|
svn import
|
Import项目
|
$ svn import mytree file:///var/svn/newrepos/some/project
-m "Initial import"
Adding mytree/foo.c
Adding mytree/bar.c
Adding mytree/subdir
Adding mytree/subdir/quux.h
Committed revision 1.
|
svn cat file@ver > a.txt
|
输出某个文件的某个版本
| |
svn list –v
|
显示文件详细信息
|
$ svn list -v http://svn.collab.net/repos/svn
20620 harry 1084 Jul 13 2006 README
23339 harry Feb 04 01:40 branches/
21282 sally Aug 27 09:41 developer-resources/
23198 harry Jan 23 17:17 tags/
23351 sally Feb 05 13:26 trunk/
|
svn proplist/propset/propget
|
可加-v显示详细信息
|
$ svn propget svn:mergeinfo .
/trunk:341-390
|
svn propedit svn:ignore <patter>
|
忽略某类文件, 比如
Svn propedit svn:ignore debug_log*
| |
svn propedit svn:externals <url>
|
添加外链的第三方SVN库
|
$ svn propget svn:externals calc
http://svn.example.com/repos/sounds third-party/sounds
http://svn.example.com/skinproj@148 third-party/skins
http://svn.example.com/skin-maker@21 third-party/skins/toolkit
|
svn changelist <tag> <files>
svn diff –changelist <tag>
svn ci –changelist <tag>
|
添加标签, diff或者commit时可以只使用部分文件
|
Section 3.10
$ svn changelist math-fixes integer.c mathops.c
$ svn diff --changelist math-fixes
$ svn ci --changelist ui-fix
|
svn checkout –r {date}
|
接受{日期}来指定checkout的版本
|
Section 3.1.2
$ svn checkout -r {2006-02-17}
$ svn checkout -r {15:30}
|
svn merge --reintegrate
|
Merge分支修改回trunk
| |
svn mkdir
|
建立标签所需目录
|
3. 常用关键字
HEAD
版本库中最新的版本。
BASE
工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则这里指的是这个条目在本地未修改的版本。
COMMITTED
项目最近修改的修订版本,与BASE相同或更早。
PREV
COMMITTED?1.
因为可以从描述中得到,关键字PREV,BASE和COMMITTED只在引用工作拷贝路径时使用,
而不能用于版本库URL,而关键字HEAD则可以用于两种路径类型。
$ svn log -r BASE:HEAD
# 显示当前本地版本和最新版本间所有commit log
$ svn diff –c COMMITTED foo.c
# 显示最后一次对foo.c的改动
$ svn diff -r BASE:HEAD foo.c
# 比较当前版本和最新版foo.c的改动
$ svn update -r PREV foo.c
# 撤销对foo.c的最后一次改动
4. Svn附带其他工具
a) svnadmin
b) svndumpfilter
c) svnlook
d) svnmucc
e) svnserve
f) svnsync - 这个挺有用,可以同步整个svn repository进来,是不是像git clone?
转载于:https://blog.51cto.com/zhenhua2000/768333