## 检出代码 svn co 代码分支路径 ## 更新代码 svn up ## 提交代码 svn ci -m “log” ## 修改日志方法 svn propset -r 47805 --revprop svn:log 代码分支路径 ## 增加文件 svn add 增加的文件路径与名称 ## 回滚本地全部修订(未提交到SVN服务器) svn revert --depth=infinity . ## 回滚本地部分修订(未提交到SVN服务器) svn revert path ## 从b分支向当前分支合并分支 svn merge b分支URL ## SVN回滚(已经提交到SVN服务器) 如果已经提交到SVN服务器。 ```bash svn up svn log -v -l3 svn merge -r 当前版本号:回滚到的版本号 “” svn diff svn ci -m “回滚致” ``` 注: 以上svn merge命令有几种情况: - 如果仅回滚某个版本:svn merge -c -回滚到的版本号 . - 如果回滚版本号不连续:svn merge -c -回滚到的版本号1,-回滚到的版本号2 . - 如果回滚连续版本号:svn merge -r 开始版本号(包含):结束版本号(不包含) . ## SVN重定向url svn switch 新URL ## SVN合并代码 ```bash svn merge trunk_svn_URL svn merge -c 66060 trunk_svn_URL svn merge -r 66059:66060 trunk_svn_URL ``` ## SVN回退指定版本 svn merge -c -66060 trunk\_svn\_URL ## 删除所有非版本控制文件 svn st | grep '^?' | awk '{print $2}' | xargs rm -rf ## 查看文件修改状态 svn st ## 查看文件修改状态,排除不受版本控制的文件。 svn st | grep -v '^?' ## 使用diff文件patch 生成.diff文件: svn diff > yz.diff 使用.diff文件: patch –p0 –d ./ < yz.diff ## 从svn info中格式化提取信息 提取HEAD版本最近修改日期并格式化: ```bash svn info | sed -n "/^Last Changed Date:[ ]*/p" | sed "s/[ ]*Last Changed Date:[ ]*//g" | sed "s/-//g" | awk '{print $1}' ``` 输出格式:20170125 ## SVN常见错误 **"added: svn:executable"问题** 有时候新增文件,svndiff最后会提示“added: svn:executable”,可以使用以下命令消除: ``` svn propdel svn:executable <文件> ``` **"Property 'svn:mime-type' not found"问题** ``` arc diff svn: warning: W200017: Property 'svn:mime-type' not found on 'set_variables.sql@' svn: E200000: A problem occurred; see other errors for details ``` 解决方法: ```bash svn propset svn:mime-type text/plain set_variables.sql ``` **"Property changes"问题** ```bash svnst MM vendor/gbase/storage/express/shared/core/ExpressEngine.cpp svn diff vendor/gbase/storage/express/shared/core/ExpressEngine.cpp Property changes on: vendor/gbase/storage/express/shared/core/ExpressEngine.cpp ------ Modified: svn:mergeinfo ``` 解决方法: 先拷贝该文件: ```bash cp -f vendor/gbase/storage/express/shared/core/ExpressEngine.cpp ExpressEngine.cpp.bak ``` 再revert: ```bash svn revert vendor/gbase/storage/express/shared/core/ExpressEngine.cpp ``` 最后覆盖该文件: ```bash cp -f ExpressEngine.cpp.bak vendor/gbase/storage/express/shared/core/ExpressEngine.cpp ```