svn问题解决手记

在这之前需要先确保安装svn命令,然后修改svn diff为vimdiff方式:
vi ~/.diffwrap.sh

chmod 777 ~/.diffwrap.sh

修改diff-cmd,vi ~/.subversion/config

这里的路径以具体情况而定。

1.首先是checkout一个版本库
svn checkout 版本库(如 svn checkout http://svn.sh7ne.com/res)
2.日常开发修改一个文件前,先更新下目录
svn update
如果提示文件锁定之类的使用svn cleanup,如果还是提示锁定,则切换到上级目录使用该命令
3.修改一个文件,提交前查看下都有哪些文件被修改了
svn st
4.提交前确认下是否是自己想提交的修改,比较文件修改前后内容
svn diff [filename] 如果不带文件名filename,则查看本次修改的所有的文件
5.如果有新增的文件或则目录,需要先新增
svn add * –force
6.提交修改
svn ci -m ‘修改log’ [filename],带filename则提交filename,不然 提交当前目录所有的修改
7.查看文件修改记录
svn blame filename,查看每行都是谁修改过
8.查看文件(夹)修改记录
svn log -v -l n [filename],带file则是具体的文件filename的n条修改记录具体信息,这里有个坑,就是你要看最近的n条,一定要先执行svn update,然后再执行svn log就可以了(如 svn update && svn log -v -l 3 查看当前目录最新的3条svn提交记录)
9.比较历史文件修改内容
a.svn diff -c 版本号 filename(通过svn log获得)
b.svn diff -r版本号1:版本号2 filename
10.获取历史文件内容
svn cat -r 版本号 filename
11.下载文件历史版本(如果是文本文件,建议直接获取内容svn cat就好,这个是我用来下载其他类型的文件的办法,可能有更好的办法,望回复补充)
svn copy -r 版本号 filename tmpFilename
这里会新增一个分支,所以用完这个文件后,先删掉,然后
svn revert tmpFilename
即可正常提交,不然会出现tmpFile is scheduled for addition, but is missing的错误

使用中问题解决
Skipped ‘文件夹xx’ — node remains in conflict
解决办法 svn revert –recursive 文件夹xx #递归恢复一整个目录的文件夹xx

一些使用中的技巧总结:
1.代码回滚
平常开发中你上线了个版本(如123)然后出bug了要回滚,不需要挨着每个文件去查看之前的内容,只需要使用在他们共有的顶层目录使用命令:

听到这里你是不是已经去测试了吧,然后当然你的代码是正确的,所以测试了还是要恢复回去,那忽略这次操作就好了:

同样不要漏掉了 . (当前目录),这样就不用挨着每个文件删了然后update了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值