一直在windows下使用SVN,现在开发环境转战Ubuntu,开使用熟悉命令环境下的svn,通过摸索,作一总结如下:
安装: sudo apt-get install subversion subversion-tools
我是在virtualBox中安装的Ubuntu,svn服务器仍然放在win7下,以前新建库,然后用import命令导入工程,而在命令行中找不到对应的命令,搜索也没有找到我想要的东东。转念一想,有可能import是一系列的动作的批处理,经过摸索,在ubuntu下应该这样做:
1、在服务器中新建一个库;
2、checkout一个版本到已有的工程目录test:svn co https://192.168.0.12:8012/svn/test --username test
3、进入test目录,使用add命令,增加文件:svn add * (增加目录下的所有文件,目录及子目录下所有文件)。
4、提交一个初始工程版本:svn ci -m "init project"
常用命令
导出:svn export [-r 版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
更新:
svn update
svn update -r 修正版本 文件名
svn update 文件名
删除文件:
svn delete svn://路径(目录或文件的全路径) -m “删除备注信息文本”
推荐如下操作(分两步):
svn delete 文件名 (与add相反)
svn ci -m “删除备注信息文本”(提交变动)
锁:
svn lock -m “加锁备注信息文本“ [--force] 文件名
svn unlock 文件名
比较:
svn diff 文件名
svn diff -r 修正版本号m:修正版本号n 文件名
查看状态:
svn st(status) 目录路径/名 【?:不在svn的控制中; M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
svn -v 目录路径/名 【第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人】
查看日志:
svn log 文件名
文件详细信息:
svn info 文件名
SVN 帮助:
svn help [ci]
查看列表:
svn ls(list) svn://路径(目录或文件的全路径)
创建纳入版本控制下的新目录:
svn mkdir 目录名
svn mkdir -m "新增目录备注文本" http://目录全路径
注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败”
svn update
注:如果手工在checkout出来的目录里创建了一个新文件夹newsubdir,
再用svn mkdir newsubdir命令后,SVN会提示:
svn: 尝试用 “svn add”或 “svn add --non-recursive”代替?
svn: 无法创建目录“hello”: 文件已经存在
此时,用如下命令解决:
svn add --non-recursive newsubdir
在进入这个newsubdir文件夹,用ls -a查看它下面的全部目录与文件,会发现多了:.svn目录
再用 svn mkdir -m "添hello功能模块文件" svn://192.168.0.3/test/newdir/newsubdir 命令,
SVN提示:
svn: File already exists: filesystem '/data/svnroot/test/db', transaction '4541-1',
path '/newdir/newsubdir '
恢复本地修改:
svn revert [--recursive] 文件名
把工作拷贝更新到别的URL:
svn switch http://目录全路径 本地目录全路径
解决冲突:
svn resolved [本地目录全路径]
例子:
$ svn update
C foo.c
Updated to revision 31.
如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。
你可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。
不checkout而查看输出特定文件或URL的内容:
svn cat http://文件全路径
今天发现命令行也有些问题,比如使用svn diff就很不方便,给出的结果很不直观。
我现在使用webstorm编辑器,发现其菜单有一项是CVS,在其中设置一下集成subvision就有集成到编辑器中的版本管理工具了,很方便!
webstorm功能很强大了,还要慢慢发掘,就是版本管理工具,就有很多选择,包括git。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。