svn几大常用命令主要包括checkout,update,commit,status,log,diff
简单总结一下这几个命令的基本用法
Checkout
svn checkout [-depth ARG] [--ignore-externals] [-r rev] URL PATH
-r 取特定版本
Update
svn update [-r rev] [-depth ARG] [--ignore-externals] PATH
在subversion中,更新多个项目目前来说不是原子性的。所以我们先找到库的HEAD版本,然后再更新所有项目到这个版本号,这样可以避免混合多个版本的拷贝
如果只有一个项目被选中更新,或者选中的项目来自不同的库,那么svn会直接更新到HEAD
Commit
在svn里面,提交过程包括以下阶段:
第一阶段是状态检查,状态检查让你决定哪些项目可能需要被提交
svn status -v PATH
第二阶段是添加文件:
svn add PATH...
最后是提交文件:
svn commit -m "LogMessage" [-depth ARG] [--no-unlock] PATH...
LogMessage 表示本次提交附带的日志信息,可以为空
Log
查看日志使用:
svn log -v -r M:N [--stop-on-copy] PATH
另一个比较常用的看日志的方式
svn log -l 5 -v
-l 看多少次log
-v verbose模式
Check Modifications
svn status -v PATH
Repo Browser
svn info URL_OF_WC
svn list [-r rev] -v URL
svn list可以查看远程库的内容
Rename
svn rename CURR_PATH NEW_PATH
Delete
svn delete PATH
Revert回到某个状态
先是:
svn status -v PATH
再是:
svn revert [-R] PATH
Cleanup
svn cleanup PATH
Get Lock
先是检查状态,决定哪些要锁住:
svn staus -v PATH
再是对某个路径进行操作:
svn lock -m "LogMessage" [--force] PATH
Release Lock
svn unlock PATH
Branch/Tag
svn copy -m "LogMessage" URL URL
或者
svn copy -m "LogMessage" URL@rev URL@rev
或者
svn copy -m "LogMessage" PATH URL
Switch
svn switch [-r rev] URL PATH
Merge
svn merge [--dry-run] --force From_URL@rev To_URL@rev PATH
Add to ignore list
svn propget svn:ignore PATH > tempfile
{edit new ignore item into tempfile}
svn propset svn:ignore -F tempfile PATH
因为svn:ignore属性通常都是一个多行的值,所以这里演示的是通过文件的方式来修改,而不是直接用命令行修改