很久没用 SVN 了,最基本的命令都忘了,重新熟悉下并记录下来。
- 克隆代码
svn checkout http://xxx/svn/git-svn-practice/
一般会生成类似下面这样的目录结构,trunk 类似 git 里的 master 分支, branches、tags 这些目录下的 feature1、v1.0 目录也是分支,不过 svn 里的分支是整个仓库的完整拷贝。
git-svn-practice
├── branches
│ └── feature1
│ ├── README.md
│ └── hello.js
├── tags
│ └── v1.0
│ ├── README.md
│ └── hello.js
└── trunk
├── README.md
└── hello.js
- 添加
svn add xxx
添加需要提交到仓库里的文件以及文件夹,已经在仓库的不需要添加,否则会报错。
- 删除
svn remove xxx
- 回滚
svn revert xxx
- 提交
svn commit -m " xxx "
提交就直接提交到 SVN 服务器上了,不像 git 还需要 push。
- 复制(创建分支)
svn copy xxx xxx
所谓的分支就是通过 copy 创建的。
1 | $ svn copy trunk branches/feature-xxx |
- 合并
svn merge xxx xxx
合并分支,合并后可以将更新提交。
1 | $ svn merge ../branches/feature-xxx |
- 更新(同步)
svn update
更新本地代码,会显示更新的结果,结果里第一个字母的含义是
A Added
D Deleted
U Updated
C Conflict
G Merged
E Existed
R Replaced
- 比对
svn diff
比对当前本地代码和 SVN 记录上最新版本的差异
svn diff -rXXX
比对当前本地代码和 SVN 记录上 XXX 版本的差异
svn diff -rXXX:YYY
比对 SVN 上 XXX 版本和 YYY 版本的差异
一些其他的
默认
svn diff
是没有颜色的,可以通过修改~/.subversion/config
文件里的配置项diff-cmd = colordiff
,并安装工具brew install colordiff
来增加颜色。如果还是想使用 git ,可以考虑使用
git svn
, 具体看这里。