语法: svn <subcommand> [options] [args]
使用“svn help <subcommand>” 显示子命令的帮助信息。
使用“svn --version”查看程序的版本号和版本库访问模块,或者
使用“svn --version --quiet”只查看程序的版本号。php
1.【检出】将文件checkout到本地目录
将“项目版本库”检出到/wwwroot目录(不存在就建立)
# svn checkout svn://192.168.1.xx:3690/martinZFsvn/wwwroot
简写:svn cohtml
注:第一次登录svn服务器会将密码信息存放在用户路径下的.subversion文件夹下,路径为/root/.subversion/服务器
2.【添加】向版本库添加新文件
# echo 'myaddfile.....' > svnaddfile.txt 新建立了一个文件
# svn add svnaddfile.txt 将新文件svnaddfile.txt添加到版本库
# svn add *.php 将当前目录的全部php文件添加到版本库网络
3.【提交】将改动的文件提交到版本库
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(若是选择了保持锁,就使用--no-unlock开关)
-m 参数表示“最近信息”内容,至关因而每次提交新版本的备注信息svn
# svn commit -m 'add test file for my test' svnaddfile.txt 将svnaddfile.txt文件提交到版本库
简写:svn ciui
4.【更新】将本地文件更新到某个版本
svn update -r m path.net
例如:
svn update 若是后面没有目录,默认将当前目录及子目录下的全部文件都更新到最新版本
# svn update 更新整个目录
# svn update newdir 更新newdir目录(这个目录能够是已经存在的,也但是新添加的)
# svn update ./svnaddfile.txt 更新当前目录的svnaddfile.txt,若是在提交的时候提示过时的话,是由于冲突,须要先update,修改文件,而后清除svn resolved,最后再提交commit。
# svn update -r 8 ./svnaddfile.txt 更新svnaddfile.txt还原到版本8
简写:up
unix
5.【删除文件】
svn delete PATH -m 'delete test file,'
# svn delete ./grptest11/test111.txt版本控制
或者直接 # svn delete ./grptest11/test111.txt 而后再 # svn ci -m 'delete test file' 推荐使用这种日志
简写:svn (del, remove, rm)
6.【加锁/解锁】
svn lock -m 'LockMessage' [--force] PATH
# svn lock -m '我如今修改这个文件,其余人先别改哦' svnaddfile.txt //对svnaddfile.txt加锁
svn unlock PATH 解锁
7.查看文件或目录状态
svn status PATH (检查PATH目录下的文件和子目录的状态,正常状态不显示)
注:?:表示不在svn的控制中; M:表示内容被修改; C:表示发生冲突; A:表示预约加入到版本库; K:表示被锁定
svn status -v PATH (显示文件和子目录状态)
第一列保持相同,第二列显示工做版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的状况下也能够执行的,缘由是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
8.查看日志
svn log PATH
例如:# svn log test.php 显示这个文件的全部修改记录,及其版本号的变化
9.查看文件详细信息
svn info PATH
例如:# svn info svnaddfile.txt
10.比较差别
svn diff PATH (将被修改的文件与基础版比较)
例如:# svn diff svnaddfile.txt
svn diff -r m:n path(对版本m和版本n比较差别)
例如:# svn diff -r 8:12 svnaddfile.txt
简写:svn di
11.将两个版本之间的差别合并到当前文件
svn merge -r m:n PATH
例如:# svn merge -r 8:12 svnaddfile.txt (将版本8与12之间的差别合并到当前文件,可是通常都会产生冲突,须要处理一下)
12.【帮助】
# svn help
# svn help ci
# svn help up
------------------------------------------------------------------------------------------------------
13.版本库下的文件和目录列表
例如:svn list path
简写:svn ls
14.建立归入版本控制下的新目录
用法:1.# mkdir PATH
2.# mkdir URL
建立版本控制的目录。
1.每个以工做副本 PATH 指定的目录,都会建立在本地端,而且加入新增调度,以待下一次的提交。
2.每一个以URL指定的目录,都会透过当即提交于仓库中建立。在这两个状况下,全部的中间目录都必须事先存在。
15.恢复本地修改
svn revert 恢复原始未改变的工做副本文件(恢复大部分的本地个性) revert
用法:# svn revert PATH
注意: 本子命令不会存取网络,而且会解除冲突的情况。可是它不会恢复被删除的目录
16.代码库URL变动
svn switch (sw): 更新工做副本至不一样的URL。
用法: 一、switch URL [PATH]
二、switch --relocate FROM TO [PATH...]
一、更新你的工做副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工做副本对应到同一仓库中某个分支或者标记的方法。
二、改写工做副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变更(好比方案名或是主机名称变更),可是工做副本仍旧对映到同一仓库的同一目录时使用这个命令更新工做副本与仓库的对应关系。
17.解决冲突
svn resolved: 移除工做副本的目录或文件的“冲突”状态。
用法: resolved PATH...
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,而后让 PATH 能够再次提交。
18.输出指定文件或URL的内容
svn cat 目标[@版本]...若是指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也能够写具体版本号,这样输出结果是能够提交的)
注:大多数的子命令可接受文件或目录参数,对目录进行递归处理。若是没有指定参数,默认对当前目录(包含当前目录)递归处理。
可用子命令:
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
参考文档
http://blog.chinaunix.net/uid-22150747-id-189264.html
http://blog.163.com/kingna_jin/blog/static/32488347200868858899/
http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076783.html