Svn项目管理工具

1       svn介绍

1.1     项目管理中的版本控制问题

通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:

  • 备份多个版本,占用磁盘空间大
  • 解决代码冲突困难
  • 容易引发BUG
  • 难于追溯问题代码的修改人和修改时间
  • 难于恢复至以前正确版本
  • 无法进行权限控制
  • 项目版本发布困难

1.2     什么是版本控制

版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

1.3     svn是什么?

SVN(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决 CVS 系统的一些不足。

1.4     svn的使用方法

svn是基于客户/服务器模式:

复制-修改-合并方案(Subversion默认的模式):

在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。

锁定-修改-解锁方案:

在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。

1.5     svn服务器的工作方式

独立服务器方式:

svnserve

借助Apache方式:

mod_dav_svn

SVN版本数据存储方式

BDB (Berkeley DB)

数据库方式

FSFS

文件方式 (推荐)

2       svn服务端安装配置

2.1     两种服务端安装包

2.1.1  官方安装包

官方网站:http://subversion.apache.org/

下载:http://subversion.apache.org/download.cgi

官方提供的服务端安装包,安装后需要通过命令行操作,适用于专业配置管理员使用。

2.1.2  图形化服务端

志愿者开发的图形化操作界面的svn服务端,它适用于普通软件开发人员使用。

下载地址:https://www.visualsvn.com/downloads/

2.2     安装图形化服务端

查看程序菜单:

查看服务,VisualSVN成功启动:

2.3     创建仓库

svn服务端创建完成需要创建仓库,仓库中存放要版本控制的文件。

通过开始菜单进入VisualSVN server manager:

选择文件存储方式:

创建一个空的仓库:

设置用户访问仓库权限:

仓库创建成功:

仓库地址为https://ip地址或计算机名/svn/仓库名称

2.4     创建工程目录

仓库中存放开发项目代码、文档等,需要创建一个工程目录。

创建成功:

trunk:项目开发代码的主体,是从项目开始直到当前都处于活动的状态,从这里可以获得项目最新的源代码以及几乎所有的变更历史信息。

branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修改,或者做实验性的开发,以及定制功能开发等。如果分支达到了预期的目的,通常可以被合并(Mgerge)到主干中。

tag:用来表示trunk和branch的某个点的状态,以代表项目的某个稳定状态,通常为最终发布状态。

工程目录创建完成,查看它的svn地址:

拷贝svn地址:

3       TortoiseSVN客户端

3.1     svn客户端类型

svn客户端需要通过网络访问svn服务端提交文件、查询文件等,可通过以下客户端类型访问svn服务端:

1、使用Subversion提供的客户端命令

使用方式:在命令行下输入命令操作。

2、使用Torotise图形化界面操作(推荐)

3、使用Eclipse等开发工具插件操作(推荐)

3.2     下载安装

TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。

TortoiseSVN是 Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了

下载:http://tortoisesvn.net/downloads.html      提供 32位和64位不同版本,安装tortoiseSVN 需要修改客户端电脑右键菜单,安装后需要重启电脑。

3.3     浏览仓库

使用Tortoise浏览svn服务端的仓库的内容:

4       权限管理(了解)

4.1     认证授权机制

在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。

判断账号和密码输入是否正确的过程即认证过程。

判断用户是否拥有目录的读/写权限时即授权过程。

4.2     创建用户

查看已创建的用户:

修改用户:

4.3     创建组

查看创建的组:

修改组:

4.4     分配仅限

给仓库下的每个目录分配权限对访问进行控制。

4.4.1  删除默认权限

删除系统安装后默认权限:

4.4.2  示例一:开发人员拥有读写权限

进入权限分配界面:

添加组或用户:

分配权限:

继承父目录权限、不可访问、读权限、读/写权限

访问时输入账号:

登陆测试是否有读/写权限:

4.4.3  示例二:测试人员拥有读权限

登陆测试是否有读/写权限:

4.4.4  清除认证缓存

有几种情况需要清除认证缓存:

1、本地使用多个账号登陆,每次输入的账号和密码都不一样

2、当账号密码修改后(建议清理)

5       TortoiseSVN日常使用

5.1     浏览仓库

Repo-browser : 浏览仓库中资源信息

5.2     导入导出

Export :导出项目 ,和checkout区别 (checkout检出后文件,含有.svn隐藏文件夹, 会和SVN仓库交互, export导出,没有.svn隐藏文件夹)

import 将本地资源导入到svn 服务器

5.3     修改提交

5.3.1  Checkout

检出项目,复制项目的副本到本地。

在要检出的目录中右键:

5.3.2  add

在检出的目录中添加文件:

图标: 这是一个新文件

n  Add to ignore list :添加到忽略列表 (标记该文件不需要版本控制 )

n  Add : 标记这个文件添加到服务器

已经标记要添加到版本库

5.3.3  Commit

当检出目录或子目录中内容有修改,目录图标变为:

提交Commit 提交本地修改至svn服务器:

在检出目录或要提交修改的目录右键:

提交后目录中的内容与svn服务同步,目录图标变为:

5.3.4  update

更新仓库的文件到本地

在检出目录或子目标或文件上右键:

5.3.4.1 更新到最新版本

5.3.4.2 更新到指定版本

5.3.5  Delete

Delete :删除版本库文件

标记删除后,本地文件删除,标记删除后需要提交。

5.3.6  恢复

在检出目录或子目录操作会记录操作日志,提交前可以回滚操作。

在要回滚的检出目录或子目录中右键:

5.4     冲突处理

两个客户端同时修改同一个文件, 改动同一个位置,发生冲突情况

如果当commit 遇到文件已经过时,说明另一个人可能改动过 ----- update

db.properties 将本地和服务器合并到一起的文件 (不要直接看)

db.properties.mine 我本地自己修改后的文件

db.properties.r16 我修改之前的文件

db.properties.r17 别人修改后的文件

手动Merge 后,需要将编辑后冲突文件,标记为已经解决 , 再进行commit

原文地址:https://www.cnblogs.com/HiJackykun/p/10424906.html

时间: 2024-10-11 09:52:00

Svn项目管理工具的相关文章

SVN:项目管理工具

svn:项目管理工具. 我们在进行团队开发的时候,每个人负责不同的层,比如:A负责DAO层,B负责SERVICE层,C负责DOMAIN层.我们开发完了自己管理的各层后需要将各层整合在一起,肯定不是拿U盘取拷贝.这时候公司就会搭一个SVN,给每一个人分配一个SVN账号,写完代码后就传到SVN服务器上.SVN会检查事务冲突. 比如A负责的部分定义了int a,而B负责的部分也定义了一个int a.这时A提交上去之后,B再提交,SVN就会检查冲突,需要B去更改代码中的变量. 原文地址:https://

64区 VS 配 SVN 项目管理工具

http://blog.csdn.net/fuyifang/article/details/40540087 第一步: 安装VisualSVN Server Manager. 下载地址:http://www.onlinedown.net/soft/89603.htm 第二步: 安装TortoiseSVN.注意:如果操作系统是64位的,要下载64位安装. 下载地址:64位 http://www.onlinedown.net/soft/22795.htm 32位 http://www.onlined

技术开发团队的项目管理工具

前言 小型技术研发团队,往往开发流程比较简单:整理需求/bug.分配任务到个人.完成指定任务.验收.涉及到的相关管理工具主要是:项目/任务管理系统.源代码管理系统. 项目管理系统 从09年开始,我用过ActiveCollab做项目管理工具:后面12年开始使用禅道. AC从0.7以后的版本转向商业,但毫无疑问,这套系统给人一种优雅的感觉:而禅道,本身功能非常强大,一看就是一个工具,只是稍微缺少一点那种文艺范. 其实,日常生活中,个人还在尝试使用很多新兴的任务管理平台,像 Tower.TeamBit

10款免费且开源的项目管理工具

在任何一个项目开发或设计中,项目管理被认为最重要的过程之一,因此,选择一款适宜的项目管理工具尤为重要.项目管理是指管理项目计划.定义.监控.控制以及确认交付的过程,因此它的优势也是被公认的. 随 着各个领域特定项目管理需求的提升,这就需要一个更好的.免费的项目管理工具来管理.因此一款高效的.良好的项目管理必须具备快速的.强大的且包含以下功 能:调度.成本控制.资源分配.预算管理.文档.协作以及沟通.本文,笔者收集了10款最佳的免费且开源的项目管理工具,希望对你有所帮助! OpenProj Ope

张左峰的歪理邪说之网络游戏项目管理工具(1)

歪理邪说之网络游戏项目管理工具(1) "工欲善其事,必先利其器." 再科学先进的开发方法或者开发模型,也不能替代工具!这是我一直坚持的,虽然有些同事认为离开这些工具就活不了是个很危险的事情,但是我依然坚持这个观点! 用工具,其实就是为了保证大规模协同开发的质量和过程,就这么简单. 一套合理的网游项目管理工具应具备如下功能 任务跟踪:单个Task的状态.进度追踪 时间管理:对每个组员的时间成本进行控制(好游戏都是改出来的,个体时间管理在网游项目中有些鸡肋) 缺陷管理:对BUG的追踪与测试

开源的项目管理工具

在任何一个项目开发或设计中,项目管理被认为最重要的过程之一,因此,选择一款适宜的项目管理工具尤为重要.项目管理是指管理项目计划.定义.监控.控制以及确认交付的过程,因此它的优势也是被公认的. 随 着各个领域特定项目管理需求的提升,这就需要一个更好的.免费的项目管理工具来管理.因此一款高效的.良好的项目管理必须具备快速的.强大的且包含以下功 能:调度.成本控制.资源分配.预算管理.文档.协作以及沟通. OpenProj OpenProj 是一款免费且开源的应用,它可以完美运行在Unix.Linux

IT项目管理工具总结

IT项目管理工具总结 俗话说"工欲善其事必先利其器",在一个项目开发流程中,如果搭配一个比较完善的项目管理工具,必将取得事半功倍的效果.本文搜集了目前项目管理界比较有规模的管理工具,给予了简单介绍,同时为了发扬免费开源的精神,重点总结了免费开源工具Dotproject 和Redmine.   一: 完善的项目管理工具,需要具有如下的管理模块: 1. 需求管理:项目的需求变更,跟踪,控制           2. 资源管理: 项目的可利用的资源(人力,物力,财力)           

2015年排名前5的开源项目管理工具

2015年排名前5的开源项目管理工具 基于以下几个标准:软件是否提供开源许可证.是否有一个活跃的社区.是否有可用的最新文档.源代码是否可用.是否有新的或最近的东西发布,来进行筛选2015年靠前的开源项目管理工具. 首先,我分享了2015年的5个新开源项目管理工具.总体来说,这篇文章将会让你好好看下11个顶级的开源项目管理工具. 基于以下几个标准: 软件是否提供开源许可证? 是否有一个活跃的社区? 是否有可用的最新文档? 源代码是否可用? 是否有新的或最近的东西发布? 2015年五款新工具 1.

在项目管理工具Redmine中使用SubVersion进行版本管理

原文:在项目管理工具Redmine中使用SubVersion进行版本管理 在项目管理工具Redmine中使用SubVersion进行版本管理 分类: Redmine2009-06-01 10:11 5678人阅读 评论(0) 收藏 举报 subversion项目管理工具tortoisesvnsvnwindows 在前面的随笔来自Rails世界的项目管理工具Redmine中,介绍了基于Rails的项目管理工具Redmine,其中提供了版本管理功能,下面介绍SubVersion(后面简称为SVN)的