发布时间:2025-12-10 19:26:42 浏览次数:14
svn版本控制工具_常用版本控制工具软件一、版本控制软件1、为什么需要版本控制软件问题:①团队开发②异地协作③版本回退2、解决之道SCM(SoftwareConfigurationManagement):软件配置管理在软件开发中,软件的配置管理主要是指对软件源代码的管理…3、常用的版本控制软件cvs版本控制软件
问题:① 团队开发 ② 异地协作 ③ 版本回退
SCM(Software Configuration Management):软件配置管理
在软件开发中,软件的配置管理主要是指对软件源代码的管理…
cvs版本控制软件:最早期比较成熟的产品,开源奇葩产品
vss版本控制软件:Visual Source Safe,入门级产品,操作简单,具有可视化界面
clearcase版本控制软件:IBM负责管理与维护,中坚级产品,但是其并不是开源免费的,而是收费软件,价格昂贵,但是其有良好的技术支持
git版本控制软件(主流):基于分布式进行架构的,主要应用于Linux平台
svn版本控制软件(主流):基于服务器端进行架构的,主要应用于Windows或Linux平台
svn是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。(bae、淘宝code、开源社区oschina)
SVN软件属于C/S结构软件,所以在使用时必须安装服务器端与客户端。
1)在服务器端安装SVN服务器端软件,配置中心服务器
2)配置中心服务器,搭建项目仓库(在SVN中,一个项目就是一个仓库)
3)项目经理开发项目的核心框架,然后通过SVN客户端软件,使用Checkout(检出)指令连接服务器,并通过Commit(提交)指令上传核心代码到SVN中的相应版本仓库。
4)程序员在个人计算机中安装SVN客户端软件,然后通过SVN地址使用Checkout(检出)指令链接服务器并更新源代码到本地。
5)项目经理如果想校检程序猿完成了哪些内容,可以使用Update(更新)指令,下载服务器端代码到本地
Checkout指令:第一次与服务器链接使用一次,主要是实现服务器的连接与下载服务器端代码到本地。
Commit指令:把本地的源代码通过SVN客户端软件提交到服务器端
Update指令:把服务器端代码下载更新到本地
下载地址:http://www.visualsvn.com/
下载完成后,如下图所示:
1)双击安装VisualSVN服务器端
2)单击Next下一步继续
3)单击Next下一步继续
4)选中标准版,继续,选择安装路径(重要)
使用SVN软件有一个基本要求,其软件的安装路径:一定不能出现中文、空格或特殊字符,否则会导致SVN指令无法使用!
5)单击Next下一步,单击Install…直到软件安装完毕即可。
特别注意:服务器端软件安装完毕后,必须重启服务器,否则可能会导致SVN指令无法生效,也可以使用在任务管理器中强制中止explorer.exe进程并再次创建模拟重启过程。
中止进程:
重建进程:
点击桌面开始按钮à选择运行à输出cmd,打开DOS窗口后,输入如下指令,如果可以正常显示,代表安装成功。
下载地址:http://tortoisesvn.net/downloads
下载后如下图所示:
说明:SVN客户端软件是分位数的,所以在安装前必须查看操作系统的位数。如何查看呢?
答:在桌面计算机图标上鼠标右键à选择属性,查看以下选项:
客户端软件安装其路径没有任何要求,可以安装在计算机的任一位置,安装过程请首先安装软件包,然后安装语言包即可。
特别说明:客户端软件安装完毕后,必须重启电脑,否则会导致SVN图标无法显示。
在计算机的任何位置鼠标右键,如果出现以下两个图标,代表安装成功
① 在SVN服务器上的任一位置,创建一个项目文件夹如Web
② 在Web目录下创建一个Shop文件夹作为项目目录(中级项目——Shop商城)
③ 使用SVN指令创建版本仓库,基本格式:
svnadmin create 项目目录路径
示例代码:
④ 使用SVN指令监管项目仓库,基本格式:
svnserve -d(后台运行) -r(监管仓库路径) 仓库路径
示例代码:
运行后发现,光标一直停留在下一行,不停的闪烁,其代表正在运行,请不要关闭当前DOS窗口,否则服务也会随之关闭。
DOS窗口与Linux终端使用小技巧:Tab自动补全
如果在实际应用中,我们不记得项目或文件的名称,可以只输入前几个字母+Tab键,系统会自动帮助我们进行补全。
① 首先在客户端计算机安装客户端SVN软件,安装完毕后一定要重启计算机
② 在虚拟主机目录创建一个空文件夹,用于建立与服务器端的链接操作(如jingli)
③ 使用SVN客户端软件连接服务器
输入要连接的SVN服务器地址
单击服务器文件夹,鼠标右键进行检出操作
检出时一定要清楚的查看路径是否正确:
如果显示以下界面,代表检出成功
① 项目经理开发项目的核心框架
② 开发完毕后,使用Commit指令提交本地代码到服务器端
第一次提交时,提示如下信息:
答:因为服务器端默认不允许匿名用户上传权限,可以在服务器端中的配置文件中进行更改,如下图所示:
找到如下代码,更改如下所示:
去除anon-access前面的#号,并把此行代码顶格(必须顶格,否则报语法错误),更改read为write,代表匿名用户具有可读写权限,设置完成后,再次提交代码,如下图所示:
在实际项目开发中,如果服务器端的代码有更新,我们就需要使用Update指令进行更新操作,如下图所示:
当本地文件与服务器端文件完全同步时,系统会自动显示常规图标zz
当我们本地要提交的文件与服务器端已存在的文件有冲突时,系统会自动显示冲突图标
当服务器端的文件已删除,那系统就会自动显示已删除图标
在无版本控制图标的基础上此文件加入了上传队列,那么其系统会自动显示增加图标
当本地新建了某个文件时,系统会自动显示此文件图标为无版本控制图标
当本地文件有修改时,那系统会自动显示修改图标
当服务器端文件设置为只读时,那么本地文件将显示只读图标
当本地文件已锁定时,那么系统会自动显示锁定图标
当某个或某类文件被忽略时,那么系统会自动显示忽略图标
有些文件不希望上传至svn服务器,应该将该文件或该类型的文件添加至忽略列表
有些时候,软件的运行可能使开发者或使用者不满意,这时我们需要把当前版本退回到以前的某个版本。
① 在项目目录中的空白位置鼠标右键,如下图所示:
② 根据项目日志选择要回退的版本
③ 查看要回退的版本,如下图所示:
④ 在要回退的版本位置鼠标右键à选择复原此版本作出的修改
⑤ 回退成功后,重新Commit提交目前版本到服务器端已达到更新服务器版本操作(重要)
如果两个人对同一个文件进行修改,会引起更新冲突,如何解决,模拟版本冲突:
说明:在实际项目开发中,经常会遇到版本冲突问题,是无法避免的,那开发中如何尽量减少版本冲突呢?
答:① 合理分配项目开发时间
旺财 上午开发
小强 下午开发
② 合理分配项目项目开发模块
旺财 产品模块
小强 文章模块
③ 使用SVN软件解决版本冲突问题
① 先更新服务器端最新代码到本地
index.php :整合后的冲突文件
index.php.mine :小强要提交的文件
index.php.r5 :最初的index.php文件
index.php.r6 :目前服务器端最新的index.php文件
② 删除除index.php文件以外其他三个文件
③ 修改与整合index.php冲突文件
④ 调整完成后,重新提交数据到服务器即可
在SVN中,一个项目就是一个仓库,但是如果按照上午所学知识对服务器进行配置则系统只能兼顾某个项目,无法同时开发多个项目。
1)Apache 监管 http://localhost:80/端口自动指向Apache目录下的htdocs文件夹
2)SVN 监管 svn://ip地址自动指向到其DOS指令监管的目录,如Shop目录
但是svn监管指令默认情况下只能监管一个目录,那如果同时开发多个项目,那么要如何配置多仓库呢?
答:可以监管仓库的上一级总目录(如Web文件夹即可)
连接Shop仓库:svn://服务器的ip地址/Shop,如svn://127.0.0.1/Shop
连接Wechat仓库:svn://服务器的ip地址/Wechat,如svn://127.0.0.1/Wechat
例1:以Shop仓库为例,只要在检出时填写如下地址即可
例2:如果之前已经连接了其他仓库,但是现在仓库已更换了连接地址,怎么办?
答:可以使用重新定位,如下图所示:
答:在实际项目开发中,我们需要同时管理多个项目,如配置多仓库案例。如果不对项目设置相关权限,其SVN服务器端代码将很难维护。
在SVN中,如果对一个项目配置权限必须要经过三个文件的支持,
第一个文件:项目主配置文件,项目目录/conf/svnserve.conf文件
第二个文件:passwd文件,认证文件,保存了项目中的的用户名和密码
第三个文件:authz文件,授权文件,保存授予某些用户某些权限的功能
① 首先在项目的主配置文件svnserve.conf文件中,开启权限控制功能
1)注释掉anon-access代码
2)开启passwd和authz文件
开启passwd文件
开启authz文件
② 设置认证文件(passwd),添加相关的用户名和密码
③ 设置授权文件,授予某些用户某些权限
在SVN软件中其运行环境和Linux都是一致的,就是每个用户必须属于某个用户组,设置组信息
设置完成后,为每个组设置相关的管理权限
④ 验证权限功能是否生效
在实际项目应用开发中,如果我们使用DOS窗口来实现对SVN服务的开启会造成很多不便。所以我们可以把监管指令设置为系统服务。
sc create指令基本语法:
基本要求:必须使用超级管理员运行此命令
sc create 服务名称 binpath=(空格)“D:\svn\bin\svnserve.exe –service -r D:/svn/Web” start=(空格)auto(此设置服务级别为自动:开机时自动启动)
示例代码:
添加成功后,我们可以在控制面板à管理工具à服务à找到svn服务,如下图所示:
单击启动,如果能成功启动,代表已经配置成功了。
在使用SVN软件管理软件源代码时我们发现,SVN只能完成对代码的整合,但是无法直接查看或测试软件的源代码。
在SVN新版本中新增加了钩子程序,就可以完成上图中的管理员功能。
所谓钩子就是与一些版本库事件触发的程序,例如新修订版本的创建,或是未版本化属性的修改。
默认情况下,钩子的子目录(版本仓库/hooks/)中包含各种版本库钩子模板。
① 在svn服务器端也安装一个svn客户端软件(TortoiseSVN)
② 在服务器端的虚拟主机目录创建一个文件夹,用于接收同步数据
③ 在服务端使用客户端svn软件,检出服务器端的最新数据到本地文件夹中
注意:这个时候一定要保持客户端与服务器端的同步数据必须是一致的
④ 在svn服务器端,打开Shop目录下的hooks钩子文件夹,找到post-commit模板,更改其后缀为.bat
⑤ 删除批处理文件中的所有数据
⑥ 写入如下相关指令
1)设置服务器端SVN路径
SET SVN=”D:\svn\bin\svn.exe”
2)设置服务器端项目运行目录
SET DIR=”D:\server\apache\htdocs\MyShop”
3)使用update指令同步更新数据
SVN update %DIR%
等号后面不能带空格
⑦ 测试如下图所示: