斯凯瑞金色童书哪本好软件哪里下载,有什么其他好用的汽车软件吗?

SVN 版本管理:两种开发模式 - 博客频道 - CSDN.NET
架构设计,项目管理,IT技术专栏, web开发工程师的工作手记
分类:管理开发测试
SVN 版本管理:两种开发模式
&&伯乐在线/陶邦仁&
(点击上方公众号,可快速关注)
来自:伯乐在线专栏作者 -&陶邦仁
链接:/100262/
1.SVN标准目录
Subversion有一个很标准的目录结构,是这样的。比如项目是 proj,svn地址为 svn://proj/,那么标准的 svn 布局是:
这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
trunk:主干,如果说把一个软件项目从开始到消亡比作一个故事的话,主线情节都在这里被SVN记录着。
branches:分支,有很多种用法,比如:版本发布维护分支、新特性开发分支,甚至是缺陷修复分支等等。
tags:标签,或者叫快照,某个版本发布时候,都在这里留档。
示例如图:
2 集中式:trunk进行主要开发
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk进行开发。
此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。
例如,刚刚发布1.0,正在开发2.0,此时要在1.0的基础上进行bug修正。按照时间的顺序:
这是一种很标准的开发模式,很多的公司都是采用这种模式进行开发的。trunk永远是开发的主要目录。
3 分散式:分支进行主要开发
这种开发模式当中,trunk是不承担具体开发任务的,主要承担版本发布,一个版本/阶段的开发任务在开始的时候,根据已经release的版本做新的开发分支,并且基于这个分支进行开发。还是举上面的例子,这里面的时序关系是。
这其实是一种分散式的开发,当各个部分相对独立一些(功能性的),可以开多个dev的分支进行开发,这样各人/组都不会相互影响。比如dev_2.0_search和dev_2.0_cache等。但是这样merge起来就是一个很痛苦的事情。
所以,第六步进行选择性的merge,是可以当2.0开发结束后一起把dev_1.0(bugfix用)和dev_2.0(新版本开发用)merge回trunk。或者先把dev_1.0 merge到dev_2.0,进行测试等之后再merge回trunk。
这两种方法各有利弊,第一种方法是可以得到一个比较纯的dev_2.0的开发分支,而第二种方法则更加的保险,因为要测试嘛。
多人协作时,第六步是最经常出问题的地方,严重的甚至会导致代码被覆盖回滚情况,其原因在于分支管理者创建分支后不再或长时间从主干拉回数据,导致最终合并回主干时分支的文件甚至结构都与主干有较大差别,产生较多冲突。需要人手解决,浪费了很多时间。
针对这个问题,是否有一种方案可以在分支提交时即检测该分支最后一次合并的版本是否与主干版本相符,如果不符则不允许提交,强制要求大家养成从主干拉数据的习惯呢?如果可以实现,那么在分支合并回主干时将几乎可以消灭掉冲突。
当前解决思路主要有3种:
以上呢,就是SVN的两种开发模式了,具体哪种好,并没有定论。这里大致的说一下各自的优缺点:
第一种开发模式(trunk进行主要开发,集中式):
优点:管理简单。
缺点:当开发的模块比较多,开发人数/小团队比较多的时候,很容易产生冲突而影响对方的开发。因为所有的改动都有可能触碰对方的改动。
第二种开发模式(分支进行主要开发,分散式):
优点:各自开发独立,不容易相互影响。
缺点:管理复杂,merge的时候很麻烦,容易死人。
4 最后,推荐第一种开发模式
责职说明:
过程说明:
排名:第652名
(12)(44)(165)(40)(23)(28)(71)(25)(46)(21)(54)(31)(142)(137)(6)(9)(8)(1)(4)(8)(0)(0)(0)linux 创建svn版本库并同步网站目录 - 云分享 - CenterPHP
分享笔记:21
linux 创建svn版本库并同步网站目录
CenterPHP&&
linux 创建svn版本库并同步网站目录
sudo svnadmin create /home/svn/projectname #创建版本库
sudo svnserve -d -r /home/svn/ #启动svn
cd /home/svn/projectname/conf
sudo vi svnserve.conf
找到下面几行,去掉注释
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
sudo vi passwd
username = password
sudo vi authz
添加用户组
在[groups]下面添加
admin = username
cd /home/svn/projectname/hooks
sudo vi post-commit
添加下面内容
export LANG=en_US.UTF-8
svn update /home/www/网站目录/ --username 用户名 --password 密码
给post-commit 777权限
sudo chmod 777 post-commit
进到网站目录,先手动检出
cd /home/www/webname
sudo svn co svn://localhost/projectname /home/www/网站目录
会提示是否保存密码,输入yes
本文链接:请教SVN怎么创建一个新的版本??_php吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:121,579贴子:
请教SVN怎么创建一个新的版本??收藏
现有一个项目,算是版本1,老大让我用svn创建一个版本2,我应该怎么做啊?不懂什么意思 啊之前用svn只是commit和checkout
上市公司「达内」全新php开发课程,以实战为主线,穿插php理论教学.取证+就业一步到位,14年经验,20W毕业学员,用实力说话!名企直通班招生中,88天月薪即可月薪上万,免费试听!
checkout 项目2 不可以吗
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或你的位置: >
> windows VisualSVN hooks实现svn提交自动更新
前讲过,有了服务器我们还有一个需求,就是提交svn之后希望在服务器上有一个版本,也就是svn版本预览测试
下面开始实验操作
现在VisualSVN Server建个版本库ceshi
新建一个文件夹关联svn版本,相当于客户端,我的测试地址是F:\www\test
用TortoiseSVN提交一个内容是空的test.txt文件到ceshi版本库里
新建个目录,用于svn自动更新,我的测试目录为F:\www\auto_ceshi,跟svn服务器上ceshi挂钩,更新svn已经有的版本
找版本库保存的目录,新建一个post-commit.bat文件
post-commit.bat文件内容为
"C:\Program Files\VisualSVN Server\bin\svn.exe" update "F:\www\auto_test" --username "test" --password "123456"
上面的代码使用的时候要修改一下,svn.exe的路径,同步的目录,svn的用户和密码,根据自己的情况修改一下
测试一下是不是成功了
QQ交流群:如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:转载保留版权:&
本文链接地址:赏
与本文相关的文章
木有头像就木有JJ!按步骤申请Gravatar头像吧!

我要回帖

更多关于 凯瑞软件 的文章

 

随机推荐