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
| svn co SVN_URL
svn add FILE
svn ci -m "LOG MESSAGE"
svn up [-r m SVN_URL]
svn st svn st -v
svn delete FILE
svn info
svn diff [-r m:n] svn diff -r head
svn merge -r m:n SOURCE_URL
svn switch TARGET_URL
svn log [-r m:n] svn log -v
svn cleanup
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