目录
- svn 常用命令行
- svn常见报错
- 问题1:svn提交不生效(提交没报错但没有提交记录)
- 问题2:commit提交的时候提示“Base checksum mismatch on”
- 问题3:想要回滚代码
- 问题4:SVN提交失败:Changing file 'XXX' is forbidden by the server;Access to 'XXX' forbidden
- 问题5 svn: warning: W150002: xxxx is already under version control svn: E200009: Could not add all targets because some targets are already versioned svn: E200009: Illegal target for the requested operation
- 问题6:svn commit时提示报错: xxxx has unexpectedly changed kind
- 问题7 :svn: E155036: Please see the 'svn upgrade' command svn: E155036: The working copy at xxxxx is too old (format 10) to work with client version '1.10.4 (r1850624)' (expects format 31). You need to upgrade the working copy first.
svn 常用命令行
svn co svn地址 本地目录 //拉取
svn info //查看svn 地址信息
svn --version //查看版本信息
svn ci -m "remove xxx" //commit
svn rm xxx //删除某个文件
svn add xxx //add
svn add xxx --force //强制add
svn cleanup //clean up
svn revert -R . //回退本地修改
svn sw svn分支地址 //切换分支
svn cp -m "branch/v1.3.0" //开新分支
svn merge -r 608:602 "" // 回退本地版本从608到602
svn log -l 5 //查看最近5条记录
svn diff -r 606:602 //查看这两条记录之间的详细信息
svn diff //撤销当前修改,覆盖为资源库最新版本
svn merge ^/trunk -r 399:HEAD //从trunk分支merge399到最新的内容到本分支
//命令方式清除svn用户名和密码
cd ~ //进入home目录
ls -al //列出所有文件
cd .subversion/auth //进入保存svn用户名和密码的auth目录
rm -rf * //删除该目下下所有文件
svn常见报错
问题1:svn提交不生效(提交没报错但没有提交记录)
1】如果是添加了文件,则需要add一下
svn add xxx (如果提示 某些文件已经版本控制,可以强制add) svn add 目录 --force
svn ci -m “add” svn ci -m 目录 --force 强制上传(不是配套使用的,一般不用)
2】如果是删除了文件,则还需要remove一下
svn rm xxx
svn ci -m “remove”
否则提交不生效
问题2:commit提交的时候提示“Base checksum mismatch on”
解决步骤:
1.1】删掉原文件,提交
1.2】将修改后的文件改个名字放入工程,提交。
1.3】将修改后的文件改成原名字,提交。
问题3:想要回滚代码
1】第一种情况:改动没有被提交(commit)。
svn revert -R . //当前目录下全部回退
svn revert -R something //回退某个文件
2】第二种情况:改动已经被提交(commit)。
这种情况下,用svn merge命令来进行回滚。
svn update //先更新
svn log //找到要回滚的版本号
svn merge -r 28:25 //从28号回退到25号
svn ci -m "revert 28 to 25" //提交回滚
问题4:SVN提交失败:Changing file ‘XXX’ is forbidden by the server;Access to ‘XXX’ forbidden
原因:服务器禁止访问,肯定是上传的权限不够导致,让运维给你的svn账号加权限
问题5 svn: warning: W150002: xxxx is already under version control svn: E200009: Could not add all targets because some targets are already versioned svn: E200009: Illegal target for the requested operation
出现这个问题影响不大,一般是add的时候因为目录之前已经存在库里了,不需要add。看后面是否有其他的报错。
问题6:svn commit时提示报错: xxxx has unexpectedly changed kind
1】一般出现这个情况就是合过来或者copy过来的文件内容软链接变了, 暴力解决方法:
1.1】先删除原内容,提交。
1.2】再cp新内容过来,提交。
问题7 :svn: E155036: Please see the ‘svn upgrade’ command svn: E155036: The working copy at xxxxx is too old (format 10) to work with client version ‘1.10.4 (r1850624)’ (expects format 31). You need to upgrade the working copy first.
问题原因: 网上很多人都说直接svn upgrade就可以,你可能会发现不好使。
真正原因: 是因为xxxxx这个文件带有svn版本控制,与你自身工程的版本控制不符,你会发现,只要他在,你的所有svn操作都会提示这个报错。
解决:
1】把xxxxx先从你的工程里删除
2】svn cleanup (有的时候你的工程会因为这个问题而锁掉)
3】查看xxxxx这个文件(或者包)里面是否有隐藏的文件夹.svn(mac电脑显示隐藏文件夹操作是commond+shift+.(这是个点) ,全部删除后再add到你的工程里。
根本原因:在Jenkins配置里面配置的库版本跟 你文件的 库版本不一致导致, 如果都是你自己的文件,就修改Jenkins库版本一致就可以。 如果是别人给你的 文件, 那就用上面的方法解决。