svn软件版本控制

  • 来源:
  • 更新日期:2018-04-25

摘要:1、为什么需要SVN? ①团队开发②异地开发③版本回退 服务器端设置: 2、建立仓库: svnadmin create \'svn服务器中的项目目录\',在svn服务器中创建于项目同名的文件,并生成仓库 3、生成仓库后,要对该仓库实施监管: svnserve -d -r \'仓库路径\',这是单仓库模式。在实际开发过程中,可能会有多个仓库要实施监管,这时可以把所有仓库放在同一文件夹下,并对仓库上一级目录实施监管,这样就可以达到多仓库监管的模式,访问的时候只需要在服务地址后面加上要选中的仓库

1、为什么需要SVN?
①团队开发②异地开发③版本回退
服务器端设置:
timg (1).jpg

 

2、建立仓库:
svnadmin create \'svn服务器中的项目目录\',在svn服务器中创建于项目同名的文件,并生成仓库

 

 

3、生成仓库后,要对该仓库实施监管:

svnserve -d -r \'仓库路径\',这是单仓库模式。在实际开发过程中,可能会有多个仓库要实施监管,这时可以把所有仓库放在同一文件夹下,并对仓库上一级目录实施监管,这样就可以达到多仓库监管的模式,访问的时候只需要在服务地址后面加上要选中的仓库即可;

 

客户端设置:
4、在客户端建立与服务器监管的仓库之间的联系
①在客户端的项目文件下,在空白处鼠标右键-》TortoiseSVN->Repo-browser->输入svn服务器IP-》选择要检出的目录-》成功后,可以在客服端文件中看到一个隐藏文件(.svn),即连接建立成功
②然后就可以在项目文件中对文件进行操作了,但在第一次提交操作时,会有权限问题,可以在仓库目录下的conf文件中svnserve.conf修改权限让anon-access = write(让匿名用户具有读写操作),但在实际开发中,是会对每个仓库进行权限设置的,在下面会讲到;
③对于其他要参与进项目的人员,只需要在第一次通过checkout与svn服务器建立连接,下载项目到本地即可,然后进行编辑,在提交即可;
5、SVN的强大功能:版本回退功能
可以通过以下步骤实现版本的回退功能,回到想要回到的状态;
①在当前项目下,鼠标右击-》TortoiseSVN-》更新版本至-》显示日志-》选择想要回到的某个状态-》恢复至此版本做出的修改-》让服务器回到新的状态,还原后,重新提交;
6、SVN的权限控制
默认情况下,svn是没有设置权限管理的,即所有用户都可以连接svn服务器;
为了安全,必须要开启权限控制:在仓库下的conf文件中有个叫svnserve.conf文件中设置
①首先要关闭匿名用户的授权:#anon-access = write
②开启认证文件和授权文件:password-db = passwd(认证文件),authz-db = authz(授权文件)
③设置认证文件:格式: 用户名 = 密码
④设置授权文件,在svn中为每个用户设置权限的时,必须先使该用户属于某个组,然后再对该组进行授权。设置组:格式:组名 = 用户名(多个用户名用逗号隔开),设置组权限:格式:@组名 = rw(对于匿名用户:* = r(只读))
7、创建自启动服务:
让svn中监管模式增加到系统中,开机自启动;
在dos下:sc create 服务名称binpath= (我 是一个空格 )“D:subversionbinsvnserve.exe--service-rD:/svnroot(要监管的仓库)" start= ( 我 也是一个空格)auto(自动启动);然后通过系统服务,开启即可;
net start 服务名称
net stop 服务名称
sc delete 服务名称(先停止服务再删除)
8、钩子程序
可以使svn服务器下的仓库数据(源代码)同步(对svn所做的动作:上传,提交,删除会触发钩子程序)到我们自己设置的站点下,这样就实现了同步处理
设置步骤如下:
①首先在 客户端与服务端同时安装SVN客户端软件
②设置一个同步目录,如服务器端Apache目录的虚拟主机目录

然后使用服务端的SVN软件,同步数据(保持客户端与这个目录是一致的)

③开启钩子程序(在svn/Web目录下/Shop目录/hooks钩子目录下创建post-commit.bat文件),输入如下代码: