* 验证svn安装是否成功:svnadmin --version
* 创建svn的数据仓库:svnadmin create E:\repository\svn\usst
* 启动svn服务:svnserve -d -r E:\repository\svn\usst 单仓库启动
svnserve -d -r E:\repository\svn 多仓库启动 建议使用多仓库"
* 验证svn启动是否成功:netstat -an 查看3690端口是否被占用
* 客户端检出(checkout)文件:svn checkout svn://ip:port/repName .
* 将本地文件纳入版本控制:svn add fileName
* 将本地文件提交到服务器:svn commit -m "message" fileName
* 从服务器更新文件到本地:svn update [fileName]
* 删除本地文件:svn delete fileName
* 恢复文件:svn revert fileName 注意:revert只能恢复没有提交的操作
* svn info-显示本地或远程条目的信息
* svn list-列出版本库目录的条目
* svn status-查看当前工作区状态
* svn help-获取帮助信息
* 将svn服务注册为windows系统服务:sc create SVN-Service binpath= ""D:\Program Files\Subversion\bin\svnserve.exe --service -r D:\repository\svn"" displayname= ""SVN-Service"" start= auto depend= Tcpip
SVN的目录规范
创建三个顶级目录
/trunk 存放开发的“主线”
/branches 存放支线副本
/tags 存放标签副本
Subversion提供了主线、分支管理技术,使得在软件开发中可以更方便、灵活的对项目的进度、版本的发布、版本的维护、软件功能的拓展与定制进行管理。
主线(trunk):一个项目建立时就存在,并伴随着项目的成长而不断的成长,直到项目完全结束。
分支(branch):一般是指功能分支,例如:我们的某个项目要添加一个模块,但这个模块又比较复杂,实现难度比较大。为了不影响主线的稳定,我们就可以创建一个功能分支来专门开发这个模块,当这个模块开发完成以后,并通过测试部门的各项测试,再合并到主线中去。再比如,我们的交警GPS
项目已经开发完成了,但是这个项目是给泉州交警做的,现在我们又接到了一个交警项目,不过是要给厦门交警大队的。现在厦门交警大队要求我们给他们定制一些功能。我们又不想再主线上进行修改,这个时候,我们也可以创建一个分支,并在这个分支上开发,这时是不会对主线造成影响的。等给厦门开发完成了以后,我们发现,他们要求的有些功能其实很好,以后别的地方可能也需要同样的功能。这个时候我们就可以根据我们的需要,将有用的模块有选择的合并到主线中来。
标签(tag):标签和分支一样,也是一个目录,不过这个目录中一般存放的是发布的信息(当然我们也可以只用分支,但是用标签更清楚明了一些)。还是拿我们的交警项目来举个例子:我们的交警项目开发完成了以后,要拿给泉州交警大队用了,也就是要发布(release),假设这个版本叫做1.0.2。这个时候,我们就要创建一个标签,当泉州交警大队用了三个月,发现了一个BUG,我们只需要签出这个标签中的代码(它和我们刚提供给泉州交警大队时候的是一模一样的),进行调试,并修正这个
BUG。然后再发布一个版本,假设叫做1.1.0,这个时候我们就在创建一个
1.1.0的标签……
要注意,标签目录里面的代码,要进行严格的控制,除了修正BUG
外,不能做任何其他的事情。
TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。TortoiseSVN的图标如下
SVN与MyEclipse整合
1、从官网下载site-1.6.13.zip文件,网址是:subclipse.tigris.org,
2、从中解压出features与plugins文件夹,复制到E:\MyEclipse\myPlugin\svn里面,其它的*.xml文件不要。
3、在E:\MyEclipse\MyEclipse8.5\dropins下新建文件svn.link,内容是:path=E:\\MyEclipse\\myPlugin\\svn 保存。
4、删除E:\MyEclipse\MyEclipse8.5\configuration\org.eclipse.update文件夹
5、重启myeclipse就一切正常了。
SVN版本控制