1. 代码内容没变,但是svn url的写法变了
时常会遇到这种场景,比如IP换域名,域名换新域名,换机器host,svn://换http://等等,就是代码结构没变,只是服务端的url path变了。
svn relocate svn://example.com/repos/pc/project/trunk
2. 版本对比diff
当前路径下,对比最近两个版本:
svn diff -rprev
对比主干和分支:
svn diff . ^/repos/pc/project/branches/bugfix-xxx/
对比当前路径的两个版本:
svn diff -r186:190
注意:后面可以接路径,也可以不接路径,就是默认当前路径,但不管怎么样,两个版本号必须是存在于此路径的历史中的。
3. 代码回滚
代码回滚到某个历史版本:
svn up -r186
不加版本号就是更新到最新,更新到上个版本就是:
svn up -rprev
总之,在svn里,版本号有多种表达方式,最常规的就是一个数字,还有'HEAD'路径最新,'PREV'路径上一个版本,'BASE'路径的基础版本,'{' DATE '}' 以日期开头的版本
4. 删除存储密码
svn的客户端密码存储在~/.subversion/auth/svn.simple/下,查看账户(不显示密码)的命令为:
svn auth
通过如下命令可以查看本地存储的密码:
svn auth --show-passwords
查看时,可以写任何的pattern进行匹配,删除存储的账户也是一样,这里直接用认证的IP路径进行匹配:
svn auth --remove 192.168.0.5
5. svn add之后又想取消,svn delete之后又想取消
非常简单:
svn revert xxx
6. svn错误地将文件判定为二进制文件
判定为bin类型的文件不支持diff,此时需要修改属性:
svn propedit svn:mime-type xxx
将识别的文件类型改为text/plain,即可
7. 文件改名或者目录移动
svn mv SRC DST
mv也是rename, ren, move的别名。