svn学习总结

时间:2021-05-23 07:33:28

安装svn subversion服务参考博客
http://huihai.iteye.com/blog/1985238

一:svn版本管理的作用  
a:备份程序   项目开发过程中,防止不可控因素造成的资源丢失(断电或者硬盘损坏)

b:代码还原   恢复到之前的版本

c:协同修改    项目组共同开发时需要操作相同的文件时

d:查询编写时间以及人员

e:实现增量式归档      f:权限设定(读写)

二:svn常用的操作
1:checkout:检出,将svn服务器项目检出到本地。

svn学习总结

2:update:更新代码,将组内别人写的代码更新。:

3:commit:将本地代码提交到svn服务器。

4:synchronized:同步,比较本地与服务器代码的区别。

三:svn服务器的安装 subversion
安装完成后,会自动将subversion的路径添加到环境变量

查看svn是否安装 命令 svn --version
开源网站中source:源文件,需要编译才能使用;
binary:二进制文件,能够被计算机所识别的程序文件。

四:创建版本库,用来保存客户端提交的文件
最好是一个项目对应一个版本库,版本库的创建方式。
svnadmin create d:/subversion/oa

版本库目录:

svn学习总结
conf:放置svn服务器的配置文件,例如权限配置
db:客户端提交文件存放在db,等效数据库
hooks:钩子程序,相当于数据库中的触发器,提交完成后会
自动触发一些时间,比如向项目经理发送邮件等。可以在这里
写程序实现。

五:启动服务器,并且将服务添加到window服务中,开机自启动

命令行启动svn服务:svnserve -d -r  E:\svnrepository

svnserve :启动svn服务的命令,因为已经配置到环境变量,所以在任何目录下都可以启动。
-d:是将svn服务作为后台服务模式启动。 daemon:后台
-r:是svn的根目录 root:根
E:\svnrepository :是版本库的地址,版本库下会有对应多个项目的子版本库,这种
启动模式是多仓库。

svn服务默认端口3690,可以通过netstat -ano 命令查看。

设置成windows服务,开机自启动,参考:
http://blog.csdn.net/wangchengsi/article/details/5926877

sc create svn binpath= "D:/subversion/bin/svnserve.exe --service -r E:/svnrepository" displayname= "SVNService" depend= Tcpip start= auto

sc :该命令是window自带的命令,

binpath:是启动命令服务所在路径。
displayname:在window服务中显示名称
depend:服务端和客户端通信所依赖的协议
start:是否开机自启
svn:在任务管理器中服务显示svn,在服务中显示SVNService

注意:将svn服务设置成window服务需要管理员权限,只需要命令行有管理员权限即可。

六:通过端口查询服务
netstat -ano|findstr 3690 通过3690端口查询该端口的pid进程号2068
tasklist|findstr 2068 通过pid进程号查询服务名称

七:eclipse插件安装
可以在线安装,也可以下载安装包安装。
a:在线安装,help—eclipse marketplace—选择svn,就可以在线安装了。
b:在http://www.eclipse.org/subversive/downloads.php下载svn插件。
把下载的插件拷贝到eclipse目录dropins目录下面即可使用,然后重启eclipse

八:eclipse直接把项目导入svn版本树
项目—右键——Team——share project——选择url地址。
url:svn://localhost/healthCare

svn://localhost/ :直接定位到windows服务配置的版本库目录,然后在拼接上healthCare,让它能够定位到子仓库。
在使用eclipse提交项目到版本库的过程中,需要在conf目录下配置权限,才能提交。

九:遇到冲突
当项目组内的两个用户同时操作一个文件时(通常是公共文件),就会起冲突。
解决方法:通过同步比较,显示自己修改的地方,复制下来,然后覆盖更新,更新后,在将复制下来的内容修改
到文件中,然后在提交,问题解决。

十:权限问题
conf目录下svnserve.conf配置,如果是匿名,那么任何用户都可以进入,进行读或者写操作。

anon-access = write 匿名写操作  匿名用户可以执行读写操作
auth-access = write 权限写操作  授权用户可以执行读写操作
password-db = passwd 配置用户密码在passwd文件
authz-db = authz 配置权限在authz文件

十一:代码还原
team——显示历史内容——获取内容
在这里要修改svnserve.conf配置文件,匿名进入为none

十二:单独的客户端界面