MacOS下的Versions体验是不错的,59刀的价格;不过,,常闪退啊。

据说Windows下的小乌龟很好用,没怎么用过,感觉它属于功能强大,UI不美的纯技术作品。

其实,我个人觉得命令行才是最灵活并且天地通用的 - -#

毕竟掌握命令行之后,在Windows下不懂用乌龟也不会尴尬了。

对比工程/文件差异需要直观,在MacOS下可以用系统自带的 FileMerge,没有Versions的情况下,用它配合命令行基本也够用了。

新建一个项目

1
2
3
4
5
6
7
8
# 此为svn仓库目录
cd /var/svn

# 新建名为proj的项目
svnadmin create proj

# 使外网用户可读写
chown -R apache.apache proj

常用的基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# checkout
svn co SVN_URL

# add
svn add FILE

# commit
svn ci -m "LOG MESSAGE"

# update
svn up [-r m SVN_URL]

# status
svn st
svn st -v

# delete
svn delete FILE

# info
svn info

# diff
svn diff [-r m:n]
svn diff -r head

# merge
svn merge -r m:n SOURCE_URL

# switch
svn switch TARGET_URL

# log
svn log [-r m:n]
svn log -v

# clean
svn cleanup

# revert
svn revert FILE
svn revert -R .

其他一些操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 可导入未版本化的工程
svn import proj TARGET_URL/proj/trunk -m "import proj"

# 显示文件、目录列表
svn list TARGET_URL

# 复制
svn cp SOURCE_URL TARGET_URL

# 移动/重命名
svn mv SOURCE_URL TARGET_URL

# 删除
svn rm TARGET_URL

一些情景

已经提交的版本需要回滚

1
2
3
4
5
6
7
# 假设当前最新版本为30,希望滚回20。
# 先必须保证当前这份代码是最新并且无修改
# 原理其实就是把当前和目标版本的差异做一次merge,然后再提交
svn merge -r 30:20 SVN_URL

# 核对与版本20的差异,确认无误即可提交
svn diff -r 20

忽略多个文件/目录

1
2
3
svn propset svn:ignore "FIRST
SECOND
THIRD" .

参考链接:http://blog.csdn.net/ithomer/article/details/6187464