VIM、SVN基本使用
阅读量
0
阅读人次
0
vim、svn 在我的认知里,感觉都是上古时代的产物了。但是公司还是有用 SVN 管理的项目,也没有谁有动力去升级一下。VSCode 对SVN的支持可以说基本没有,连本地代码差异对比都不支持。没有办法,就只能自己记录一下这 两个上古工具大致是怎么使用的了。
VIM
"显示行号
set number
SVN
拉取代码(将http://172.16.0.252/svn/DanKiV5/branches/B023_BJ_ALG
拉取至B023_BJ_ALG
目录下):
svn checkout http://172.16.0.252/svn/DanKiV5/branches/B023_BJ_ALG B023_BJ_ALG
查看工作区状态
svn status
撤销工作区某个文件的修改
svn revert source/2.Software/src/netconfig/src/zNetStateThread.cpp
输出:
Reverted 'source/2.Software/src/netconfig/src/zNetStateThread.cpp'
查看某次提交修改的文件
svn diff --summarize -c r1015 # r1015 为某次提交号
输出:
M source/2.Software/tools/hi3516dv500/start-app.sh
M source/2.Software/config/DK-FSAN-HI3516DV500/conf.txt
回退本地代码至某次提交
用于在本地查看某次提交的代码。
svn update -r 1014 # 1015 为某次提交号
查看差异 vimdiff
创建 vimdiff.sh
文件:
#!/bin/sh
# 去掉前5个参数
shift 5
# 使用vimdiff比较
vimdiff "$@"
然后编辑 ~/.subversion/config
文件,在 [helpers]
找到 diff-cmd
,取消注释并修改为:
[helpers]
# 这里需要使用绝对路径
diff-cmd = /home/amass/.subversion/vimdiff.sh
然后我们使用 svn diff 文件路径
就可以通过 vim 查看比对差异了。使用 :qall
退出vimdiff。
git svn
使用git-svn将源Subversion库转换为本地Git存储库,后续的本地操作就完全基于 git,只有在需要跟远程 svn 交互时,才需要使用 git svn xxx
命令。
安装:
sudo apt install git-svn
从 SVN 仓库拉取代码:
git svn clone http://172.16.0.252/svn/DanKiV5/branches/B023_BJ_ALG
从 SVN 上获取最新代码:
git svn rebase
这个其实类似于 git 里面的
git pull --rebase
。所以如果有发生冲突,同等于在rebase的时候发生冲突要处理的方式一样。
把 git 的 commit 推上 svn:
git svn dcommit