前言
1 本文讲解的SVN命令演示,服务器采用的是svnserve独立运行的方式。
2 本文主要讲解常用命令,并用实际操作来验证
3 常用命令实际是运行了安装目录下bin 下如下命令工具
svn.exe是客户端的命令操作。svnadmin,svnserve是服务器端的命令。
4 服务器组件 (管理员使用)
svnadmin:用来调整和修正svn档案库的工具
svnserve:一个独立的服务器程序, 可以作为服务器行程执行, 或是被 SSH 启动,另一个让你的档案库在网络上可供其它人存取的方法.
5 客户端组件(用户使用)
svn:命令行客户端程序,这是用来管理数据的主要工具。
常见命令
1 创建仓库
- 仓库(Repository) ,SVN服务器上可以有多个仓库,仓库存放要管理的代码,通常一个仓库可以对应一个项目。
- 创建命令为svnadmin create 仓库地址\仓库名
仓库就创建好了,需要强调的是,服务器端仓库存储的并不是一个个代码文件,而是以元数据的形式存储在文件系统上的,所以服务器端是看不见代码文件的。
仓库中conf文件夹下放的是权限配置文件
passwd配置:用户名 = 密码 的形式
这样就定义了一个密码为abners的用户abnerauthz配置:
这样就为abner 用户配置了在本仓库根目录下具有rw权限svnserve配置:
这样就启用了授权文件和密码文件,客户端访问,必须输入用户名,密码。
2 启动svn服务
- svn服务器要想运行,必须启动服务。
- 单仓库启动
- 启动命令:svnserve -d -r D:\repository\svn\仓库名
- 结果如下:
多仓库启动(推荐)
- 启动命令:svnserve -d -r D:\repository\svn,
-d 后台执行,-r 版本库的根目录
注意:SVN服务占用的是3690端口,如果启动失败,可以使用netstat -an 查看3690端口是否被占用
- 将服务注册到windows服务
- 注册服务:
- 卸载服务
- 当然,在最开始的文章中,提供了下载
当然下载后记得修改路径。 - 注册的效果:
- 注册服务:
3 客户端将项目checkout到本地
命令:
svn co | checkout http|svn ://ip/仓库名 [同步到本地路径]
--username
用户名--password
密码,不指定本地目录全路径,则检出到当前目录下。
文件目录:在对应目录下,会多出一个.svn的隐藏文件夹,是客户端与服务器建立的连接。
- .svn这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。千万不要手工修改或删除这个 .svn隐藏目录和里面的文件, 否则将会导致你本地的工作拷贝 (静态视图)被破坏,无法再进行操作。
4 将文件提交到仓库
首先,要提交到仓库,必须将文件先加入版本控制,不然无法提交
- 添加版本控制命令:
svn add test.java | *.java
将test.java|所有的java文件文件添加到版本控制 - 需要先cd到本地的对应目录,如图:
- 添加版本控制命令:
然后便可以将对应文件提交到仓库
- 提交命令:
svn ci | commit -m "message" fileName
- ci是commit的简写,-m,定义信息,对修改的描述,filename为上传的文件,也可以写为*.java形式
- 提交命令:
5 从仓库更新最新版本到本地:
- 命令:
svn update
svn update -r 修正版本 文件名
svn update 文件名
- 如图所示:
6 删除和恢复:
- 客户端删除文件:svn delete fileName
- 恢复文件:svn revert fileName
7 其他命令:请参照参考资料和SVN手册,这里不在演示
可以输入svn -h查看
其他命令
- svn info-显示本地或远程条目的信息
- svn list-列出版本库目录的条目
- svn status-查看当前工作区状态
- svn help-获取帮助信息
- svn copy A B -m “make B branch”- 从A拷贝出一个新分支B
- svn merge A B -把对A的修改合并到分支B
- svn cat svn://10.12.91.5/Demo/test.java-不checkout而查看输出特定文件或URL的内容
小结
1 本节主要讲解了利用svn常见命令,并利用SVN的常见命令进行仓库的创建,更新等一些列常见操作。更详细的命令请参照svn用户手册。
2 参考资料
1_SVN命令使用详解 ;
2_svn 命令行下常用的几个命令