0 0

如何进行项目版本控制?5

现在摆在我面前的有几个问题,想咨询一下大家,
看看大家在平时的时候如何解决这类问题
1,项目开发时有一个svn版本库,大家一起提交代码和更新
后续开发的差不多了,客户要求上线,但是上线以后会有bug,同时项目
还有新的功能要开发,
如何大家现在共用一个版本库的话,会出现新功能还没有测试完成,
但是bug是要及时修复,所以要着急发版。

所以如何控制版本库,能够及时的修改和修复bug,同时对于新功能的开发还可以有条不紊的进行,
同时对于发版不会因为新功能的开发代码提交而导致bug即使修复完成了也没有办法发版(因为新功能还没有开发完,只是提交了部分代码)。


2014年7月17日 14:25

9个答案 按时间排序 按投票排序

0 0

楼主可以借鉴一下,我们项目管理方式。
svn根目录
Trunk:主开发目录。
Branches:分支开发目录及测试目录,版本正式发布并生成tag后删除。
Tags:已发布版本(包括补丁)的存档目录,不允许修改。
Release:程序发布目录,含运行程序、升级脚本和标准库。由配置管理员在版本发布时创建。

trunk
Bin:运行程序存放路径。
Control:第三方控件存放路径。
Documents:产品开发文档存放路径。
Management:项目管理类文档存放路径。
Procedure:存储过程或包、初始化数据及视图存放路径。
Script:数据库升级更新脚本存放路径。
Sources:源代码存放路径。
Tools:工具存放路径

Branches
一级目录为程序修改版本标识,二级目录的目录结构与trunk一致。

Tags
一级目录为已发布程序基线版本号,二级目录为子版本标志,比如BL表示基线版本,sp1表示对应基线的第一个大补丁版本呢,三级目录的目录结构与trunk一致。

Release
一级目录为已发布程序基线版本号,二级目录如下:
Bin:执行程序存放位置。
Bin\Doc:操作手册、安装手册及升级说明存放位置。
Patch:补丁存放位置
Procedure:存储过程或包、初始化数据及视图存放位置。
Script:数据库升级更新脚本存放位置。
Stddb:标准库存放位置

2014年7月19日 21:46
0 0

我们会经常性的遇到这种问题。
先说我们的svn 结构:
开发在branch 分支,当前线上稳定版本在trunk,每次大版本发布,会在release 分支上建立一个tag。

当线上环境遇到bug 而有一个或多个开发分支存在的时候,可以如下进行:
1、一般此情况为紧急bug,直接在trunk 上进行修改
3、将trunk 的改动,在提交前利用svn 的patch 功能,导出改动的patch
2、测试通过后紧急上线fix,线上验证改动有效
4、将第2步得到的patch 覆盖到所有的开发分支上,有必要的话,覆盖到release 分支上。

其实,如果能够灵活利用svn diff 命令,流程还可以更加优化。

2014年7月19日 14:06
0 0

svn上面有这个功能,采用建立多个分支的方法,你把还在开发的项目放到trunk分支下,在这里进行功能增加和修改,把上线的项目放到release分支下,每增加或修改bug后把这两个分支merge一下,然后重新发布到release分支下

2014年7月19日 12:12
0 0

楼主的想法   我想是大多数开发人员都会遇到的问题。楼上的朋友说的是有道理。我这里补充下,华为最近几年在项目开发上都一直推 敏捷 模式,追求每日构建,版本的更新迭代快,可以参看我的文章,SVN中如何给项目打基线 http://rmzdb.iteye.com/admin/blogs/1851220,打基线的目的就是要知道每个版本出去的代码原样,bug提交后再新版本引入是否会有冲突等。每次迭代后,基线就向后推,最终朝着终极版本前进,当然,有时候也要灵活处理。

2014年7月17日 23:13
0 0

楼主的问题我也遇到过,这个问题还是要和一起开发的兄弟们商量,分支也是一个好方法

2014年7月17日 20:32
0 0

基于楼主项目情况,建议使用SVN的分支。
我之前负责项目的情况和楼主很相似,用户催着上线、改bug,一边还有新功能要开发。

结合自己项目的情况,使用SVN分支方式如下:
首先找一个切入点,定义主干。我项目把主干定义为:与正式库运行项目完全一致(就像正式系统的影子),目的是方便修改bug,排查问题。
当用户反馈正式系统有bug,那么就从主干上打出分支,在分支上改bug。待测试通过。把这个分支上线,同时主干合并该分支。其他分支合并主干(保证bug在svn范围内都被修复)。
若有新的需求准备开发,则在主干上打出新分支,在新开的分支上开发。

大体就是这样,这里有几点楼需要掌控:
开发前尽量估算出交付的时间,将交付时间差不多的需求,在一个分支上开发,减少分支数量。主干不允许任何人提交代码,除了合并分支。保证主干和正式系统的一致性。

SVN分支管理的方式,希望楼主能根据项目实际情况灵活运用,毕竟方法是活的!

2014年7月17日 17:06
0 0

一图胜千言虽然是Git,但对svn也适用。只是分支和合并有些麻烦。

2014年7月17日 16:47
0 0

同意上层的意见

2014年7月17日 16:08
0 0

开分支啊亲…………

开一个分支做新功能,测试稳定了再把修改的部分merge回主版本中去

2014年7月17日 15:40

相关推荐

    数据挖掘项目版本控制说明

    数据挖掘项目版本控制是确保团队协作、代码质量和项目可追溯性的关键环节。本文将深入解析数据挖掘项目中版本控制的核心概念、实施步骤及其重要性,同时详细介绍如何利用Google Code结合SVN客户端TortoiseSVN进行...

    利用SVN和AltiumDesigner进行PCB版本控制设计

    版本控制是指对软件或硬件项目中各种文件和文件夹的更改进行跟踪和记录的过程。它允许用户跟踪项目的历史记录,查看文件的修改记录,版本控制系统可以防止文件的丢失或损坏,并提供了一个健壮的合作开发环境。 在...

    TIA博途_如何进行不同版本之间的项目升级?.docx

    本文将详细解释如何在不同版本之间进行TIA博途项目的升级。 首先,了解TIA博途项目的基本兼容性原则至关重要。一般来说,较高版本的TIA博途可以打开并编辑较低版本的项目,但较低版本的软件无法打开高版本的项目。...

    清除项目SVN版本控制.zip

    总的来说,"清除项目SVN版本控制.zip"压缩包提供了一个便捷的工具或方法,帮助开发者们从项目中移除SVN版本控制,使项目回归到非受控状态,以便进行其他操作或迁移至新的版本控制系统。在实际使用时,务必谨慎操作,...

    JSMSoft单机项目版本控制

    无论是个人进行单独编码还是团体开发项目,项目的版本控制都是很重要的。 使用版本控制工具,可以方便,可靠的管理版本。 常用的windows平台下的版本控制工具有svn,cvs,git。 而下载的是一款不需要搭建服务器的单机...

    java版本控制(数据库版本控制)

    在实际项目中,还可以利用现成的库如Flyway或Liquibase来进行数据库版本控制。这些库提供了强大的API和命令行工具,能够自动化管理数据库的迁移过程,减少了手动编写和维护迁移脚本的工作量。 总的来说,Java中的...

    svn实现软件版本控制

    12. 项目版本控制实践:文中提供了具体的项目版本控制示例,演示了从创建项目、开发测试、版本发布,到创建分支的完整过程。特别地,展示了如何使用maven-release-plugin来管理项目版本。 13. 发布BUG修复版本:当...

    利用SVN进行版本控制.pdf

    ### 利用SVN进行版本控制的详细指南 在现代软件开发过程中,版本控制系统是不可或缺的工具之一,它能够帮助团队高效地管理代码变更、追踪修改历史以及协同工作。Subversion(简称SVN)作为一款成熟且广泛使用的版本...

    PowerBuilder 通过SVN实现版本控制操作说明

    本文将详细介绍如何在PowerBuilder项目中实现SVN版本控制,并以PowerBuilder 11.5为例进行具体说明。通过本教程,读者可以了解如何配置环境、创建SVN仓库、安装必要的软件以及准备PowerBuilder项目以支持版本控制等...

    版本控制-Git的安装与配置

    版本控制系统(VCS)是开发人员管理项目文件变更历史的重要工具,它记录和跟踪项目中各文件内容的修改变化。版本控制系统可分为手工...掌握Git的安装与配置知识,对于任何一个需要进行版本控制的项目都是至关重要的。

    EA中SVN进行版本控制设置步骤

    Subversion(SVN)是一种广泛使用的版本控制系统,而Enterprise Architect(EA)是流行的UML建模工具,支持与SVN集成进行版本控制。本篇文章将详细阐述如何在EA中配置和使用SVN进行版本控制。 首先,我们需要理解...

    TFS版本控制去除

    对于曾经做过TFS版本控制的项目,在版本控制服务不可用的时候,依然会在每次打开项目的时候都提示:当前项目是版本控制的项目,但是当前版本控制不可用,balabala的信息,如果是需要进行版本控制的项目在临时无法...

    sos版本控制工具manual

    本文将围绕SOS版本控制工具的安装、使用和管理进行深度剖析,旨在为开发者提供一份详尽的操作指南。 ### 安装与许可 #### SOS: 安装与许可 安装SOS版本控制工具前,理解其许可模式至关重要。SOS支持多种许可方式,...

    版本控制学习

    此外,项目版本的概念区别于单一文件版本,意味着同一项目中的文件可能处于不同的版本状态。 ### 分支策略 基于文件的分支在实践中较少使用,多数情况下,开发团队倾向于基于项目进行分支,以支持并行开发和特性...

    浅谈版本控制系統SVN

    为何需要版本控制?在协同开发的环境中,版本控制系统能够确保: 1. 保留所有更改的历史记录,方便回顾和学习。 2. 快速回滚到特定版本的状态,以便在出现问题时进行修复。 3. 显示团队成员的更改及其程度,便于...

    JAVA版本控制测试

    版本控制(Revision Control)是一种软件工程中的重要技术,主要用于管理项目开发过程中多个开发者对同一文件或目录所做的更改。通过版本控制系统,可以确保不同人员编辑同一文件时都能得到最新的版本信息,并能够...

    版本控制SVN和GIT笔记

    集中式版本控制系统以CVS和SVN为代表,它们使用一个单一集中管理的服务器来保存所有文件的修订版本,所有开发者从该服务器下载最新版本,进行开发并提交更改。CVS是最早的开源版本控制系统之一,它可以跨平台使用,...

    使用Subversion进行版本控制 PDF中文版

    对于大型项目而言,使用Subversion进行版本控制能够确保代码的稳定性和安全性,避免因版本混乱导致的问题。此外,Subversion的文档和社区支持丰富,无论是初学者还是有经验的开发者,都能从中找到所需的信息和解决...

    PB版本控制,適用于PB開發人員

    此外,PB开发人员还需要了解如何将版本控制系统与PB的集成开发环境(IDE)如PowerBuilder的版本控制插件进行配合使用,以实现无缝的开发流程。例如,许多IDE支持直接在界面中进行版本控制操作,如提交、更新等。 综...

    如何将早期 TIA Portal 版本创建的项目转换到TIA Portal V14或更高版本?.docx

    5. 在满足所有条件后,使用TIA Portal的新版本进行项目升级。 遵循这些步骤,可以确保项目成功升级,同时保持其完整性和兼容性。在升级过程中遇到任何问题,都需要仔细检查并按照提示进行相应操作,以避免可能的...

Global site tag (gtag.js) - Google Analytics