记录一下工作中常用到的svn命令
一、文件的提交流程
1.svn up // 先更新本地文件
2.svn st // svn status 查看要提交的文件
3.#svn ci -m "xxx" filename // 提交要提交的文件
//加 # 号,是为了防止在输入命令时,不小心按错,直接提交,写好命令后,去掉 # 号
//注意:为确保文件的修改正确,可进行文件的 svn diff filename ,参考下面svn diff 命令
二、svn log
svn log -l 10 -v // svn log -limit 10 -v 显示最近10条提交的log
若刚提交完的svn记录,svn log时不显示,需svn up后,在svn log
svn log -r5:18 -v // 查看特定版本范围内的日志记录
svn log path/xxx |more 查找更多 xxx文件 提交的版本
svn log -r {2011-9-27}:{2011-9-29} // 查看某个时间段内的日志
// 查看log中,特定用户提交的log (相当于是先查询,再搜索指定用户的log)
svn log -l 10 -v path/xxx | sed -n '/username/,/--$/ p'
三、svn diff
svn diff -r2566:2677 filename 对比file任意版本差异
svn diff filename 对比当前的文件和缓存在.svn下的版本库文件
svn diff -r9412 filename 对比当前文件和特定版本的的差异
四、svn revert (回滚版本)
回滚的操作过程如下:
1、保证我们拿到的是最新代码:
svn update
假设最新版本号是28。
2、然后找出要回滚的确切版本号:
svn log -l 5 -v
假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
3、回滚到版本号25:
svn merge -r 28:25 目录/文件
为了保险起见,再次确认回滚的结果:
svn diff [something]
发现正确无误,提交。
4、提交回滚:
svn commit -m "Revert revision from r28 to r25,because of ..."
提交后版本变成了29。
将以上操作总结为三条如下:
1. svn update,svn log,找到最新版本(latest revision)
2. 找到自己想要回滚的版本号(rollbak revision)
3. 用svn merge来回滚: svn merge -r : something
五、其他
1.创建项目
svnadmin create /path/to/repos
2.导入文件
准备一个类似下面例子中的用来导入的文件、目录树。在树结构中,应该包含三个顶层目录:branches、tags 和 trunk
svn import /tmp/project file:///path/to/repos -m "initial import"
3.建立工作副本的拷贝
svn checkout file:///path/to/repos/trunk project
简写
svn co http://xxx.com newName
4.svn blame 显示特定文件和URL每一行的作者和修订版本信息
svn blame <file or url> -- 每一行文本在开头都放了最后修改的作者(用户名)和修订版本号。
svn blame -r <version> <file or url>