SVN是Apache Subversion的缩写 ,是一个开放源代码的版本控制系统。相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS转移到Subversion。Subversion 在 2000 年由 CollabNet开发,现在已发展成为Apache软件基金会的一个项目。
svn是Apache Subversion的客户端,完成与Apache Subversion服务端的交互,实现版本控制。
svn [subcommand] [options] [args]
可用的子命令:
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
(1)然后找出要回滚的版本号:
svn log --limit 3 [filename]
--limit 3
的意思是显示最新的三个版本,假如根据svn log日志查出指定文件要回滚的版本号是2589。
(2)回滚本地到版本号2589:
svn merge -r 5730:2589 [filename]
(3)为了保险起见,确认回滚的结果:
svn diff [filename]
(4)本地与版本库中没有差异的话,指定文件的当前版本是2589。提交回滚后的文件:
svn commit -m "Revert revision from r5730 to r2589,because of ..."