文档库 最新最全的文档下载
当前位置:文档库 › SVN版本控制工具介绍

SVN版本控制工具介绍

SVN版本控制工具介绍
SVN版本控制工具介绍

SVN版本控制工具介绍Version history

SVN版本控制工具介绍 (1)

Version history (1)

目录 (2)

前言 (3)

术语 (4)

1. SVN简介 (4)

1.1 SVN的历史 (4)

1.2 SVN的特点 (5)

1.3 SVN Client图形化软件 (6)

1.4 其它版本控制工具,VSS,CVS,GIT (6)

2. SVN server,VisualSVN-Server (7)

2.1 下载安装VisualSVN-Server (7)

2.2 配置VisualSVN-Server (8)

2.2.1 创建资料库 (8)

2.2.2 配置用户访问权限 (10)

3. SVN client,TortoiseSVN和Linux中的SVN命令。 (12)

3.1 下载TortoiseSVN (12)

3.2 TortoiseSVN的基本操作 (12)

3.3 Ubuntu 10.04,svn命令 (17)

4. SVN版本控制过程 (18)

4.1 Linux kernel开发环境 (18)

4.2 SVN版本控制基本流程 (18)

4.2.1 SVN server side (18)

4.2.2 SVN client side (18)

4. 3 SVN高级主题 (22)

5. 参考资料 (23)

版本控制(Revision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。

本文档介绍了SVN server、client的安装,配置,和使用。

SVN server使用Windows版本,VisualSVN-Server-1.7.2.msi。

SVN client使用Windows版本,TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi,和Ubuntu Linux 32-bit,svn, version 1.6.6 (r40053)。

读者可以根据需要下载最新的稳定版本。

基线(Baseline)

基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。档案库(Repository)

存储档案的新版本还有历史资料的地方,通常是在服务器上。有时候也叫Depot(像是在SVK、AccuRev还有Perforce中)

工作版本(Working copy):从档案库中取出一个本地端(客户端)的复制,针对一个特定的时间或是版本。所有在档案库中的档案更动,都是从一个工作版本中修改而来的,这也是这名称的由来。观念上,这是一个沙盒。

提交(Commit)

将本地端的修改送回档案库。(由版本控制软件处理―跟上次更动相比,哪个档案又被更动‖的事)

变更(Change)

对一份文件作的特定更动。

变更记录(Change List)

取出(Check-Out)

从档案库取出档案到本地端(客户端)。

更新(Update)

将档案库的修改送到本地端(与送交相反)。

合并(Merge / Integration)

合并各个改变。

版次(Revision)

一个revision或version指的是一系列版本变迁的其中之一。

汇入(Import)

汇出(Export)

冲突(Conflict)

当两方更动同一份文件会发生冲突。

1. SVN简介

1.1 SVN的历史

Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

在2000年初,开发人员要写一个CVS的自由软件代替品,它保留CVS的基本思想,但没有它的错误和局限。

2000年2月,他们联系了Open Source Development with CVS(Coriolis, 1999)的作者Karl Fogel,问他是否愿意为这个新专案工作。巧的是这时Karl已经在和他的朋友Jim Blandy讨

论一个新的版本控制系统的设计。在1995年,两人开了一家提供CVS技术支持的公司,叫作Cyclic Software。虽然公司已经卖掉了,他们仍然在日常工作中使用CVS。在使用CVS 时受到的束缚已经让Jim开始仔细思考管理版本化数据的更好的路子。他不仅已经起好了名字“Subversion”,而且有了Subvesion资料库的基本设计。当CollabNet打来电话时,Karl 立刻同意为这个专案工作。Jim征得他的老板RedHat Software的同意,让他投入这个专案,而且没有时间限制。CollabNet雇用了Karl和Ben Collins-Sussman,从5月份开始详细设计。由于Greg Stein和CollabNet的Brian Behlendorf和Jason Robbins作了恰当的推动,Subversion 很快吸引了一个活跃的开发人员社区。这说明了许多人有相同的受制于CVS的经验,他们对终于有机会对它做点什么表示欢迎。

最初的设计团队设定了几个简单的目标。他们并不想在版本控制方法论上有新突破。他们只想修补CVS。他们决定Subversion应该与CVS相似,保留相同的开发模型,但不复制CVS 最明显的缺点。虽然它不一定是CVS的完全的替代品,它应该和CVS足够象,从而任何CVS用户可以不费什么力气的转换过来。

经过14个月的编码,在2001年8月31号,Subversion可以“自我寄生”了。就是说,Subversion 开发人员停止使用CVS管理Subversion的源代码,开始使用Subversion代替。

虽然CollabNet发起了这个项目,而且仍然支助一大部分的工作(它为一些专职的Subversion 开发人员发薪水)。但是Subversion像大部分开放源码的项目一样运作,由一个松散透明,鼓励能者多劳的规则管理。CollabNet的版权许可证和Debian FSG完全兼容。换句话说,任何人可以免费下载,修改,按自己的意愿重新分发Subversion,而不必得到来自CollabNet 或其他任何人的许可。

2009年11月,Subversion被Apache Incubator专案所接收。

2010年1月,正式成为Apache软件基金会的一个顶级专案。

1.2 SVN的特点

SVN的特性:

* 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。

* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。

* 重命名、复制、删除文件等动作都保存在版本历史记录当中。

* 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)

* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。

* 分支的开销非常小。

* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不

必要的和数据库主机之间的网络流量。

* 支持元数据(Metadata)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。

* 支持FSFS和Berkeley DB两种资料库格式。

SVN的不足

* 只能设置目录的访问权限,无法设置单个文件的访问权限。(目前可以通过辅助模块比如wandisco access control实现单文件访问)

* 数据库为二进制格式,无法方便的利用其它软件读取数据库的内容。

1.3 SVN Client图形化软件

TortoiseSVN

在windows非常受到欢迎的一套Client软件,与资源管理器集成得相当不错,可以通过资源管理器在文件或目录上用鼠标右键的菜单完成SVN的操作。TortoiseSVN官方站点Ankhsvn

将subversion的操作集成进Visual Studio的SVN Client软件。Ankhsvn官方站点Subclipse

将Subversion的操作集成进Eclipse的SVN Client软件。Subclipse官方站点

Subversive

和Subclipse相同Subversive官方站点

SCPlugin

Mac OS下类似TortoiseSVN的软件SCPlugin官方站点

SVNx

Mac OS X下的一款Client软件SVNx官方站点

eSVN

Unix下类似TortoiseSVN的软件eSVN官方站点

kdesvn

Linux下使用KDE桌面管理下类似TortoiseSVN的软件kdesvn官方站点

RabbitVCS

Linux下使用Gnome桌面管理下类似TortoiseSVN的软件RabbitVCS官方站点

1.4 其它版本控制工具,VSS,CVS,GIT

VSS

Microsoft Visual SourceSafe是美国微软公司出品的版本控制系统,简称VSS。

软件支持Windows系统所支持的所有文件格式,兼容Check out-Modify-Check in(独占工作模式)与Copy-Modify-Merge(并行工作模式)。VSS通常与微软公司的Visual Studio产品同时发布,并且高度集成。VSS使用文件系统作为存储方式,每次版本变更时就需要大量地读写硬盘。这也是VSS最广受垢弊的缺点。快速大量的信息交换的需要,使得VSS仅适用于快速本地网络,而无法实现基于Web的快速操作,尽管一个妥协的办法是可以通过慢速的VPN。VSS2005 拥有Web访问功能,不再与Visual Studio同时发布。为了实现VSS 的远程和跨平台访问,微软推荐VSS用户使用第三方工具,例如SourceAnywhere for VSS。在Visual Studio2008 Team System 中集成了另外一个叫做Team Foundation Server的项目生

命期管理工具。VSS未来将面向独立开发者和小型开发团队。

VSS虽然是微软公司的产品,但微软内部却很少使用它。微软内部使用一个名为SLM的版本控制系统,直至1999年。之后,微软内部改以使用修改自Perforce的SourceDepot。

CVS

CVS(Concurrent Versions System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。

很多开源或者自由软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括:Gnome、KDE、GIMP、Wine等。CVS的使用获GNU通用公共许可证授权。

这是一个将一组文件放在层次目录树中以保持同步的系统。人们可以从CVS服务器上更新他们的本地层次树副本,并将修改的结果或新文件发回;或者删除旧文件。

CVS基于客户端/服务器结构(C/S)的行为使得其可容纳多用户,构成网络也很方便。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。

GIT

Git是一个由林纳斯·托瓦兹(Linus Benedict Torvalds)为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。需要注意的是和GNU Interactive Tools,一个类似Norton Commander界面的文件管理器相区分。

Git最初的开发动力来自于BitKeeper和Monotone。Git最初只是作为一个可以被其他前端比如Cogito或StGIT包装的后端而开发的。不过,后来Git内核已经成熟到可以独立地用作版本控制。很多有名的软件都使用Git来进行版本控制,其中有Linux内核、https://www.wendangku.net/doc/7d15247314.html,服务器和OLPC内核开发。

林纳斯·托瓦兹自嘲地取了这个名字"git"。在英式英语中指一个愚笨或者不开心的人。

― I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git. ‖

2. SVN server,VisualSVN-Server

2.1 下载安装VisualSVN-Server

官方网站:https://www.wendangku.net/doc/7d15247314.html,/server/

最新版本是Version 2.5.5。

System Requirements

Operating Systems

* Windows XP

* Windows Server 2003

* Windows Vista

* Windows Server 2008

* Windows Server 2008 R2

* Windows 7

Minimum hardware

* Pentium 500MHz or greater

* 128 MB RAM or greater

* 30 MB hard drive space

2.2 配置VisualSVN-Server VisualSVN-Server的启动界面(图2-1)。

图2-1

2.2.1 创建资料库

右击Repositories,弹出下面的对话框(图2-2)。

图2-2

资料库名称是“Eyesight_SoC‖,勾选―Create default structure(trunk, branches, tags)‖,点击“OK”,即创建成功(图2-3)。

图2-3

同样,通过快捷菜单,在‖trunk‖目录下创建相应的子目录“project‖、“kernel‖、“rootfs‖、“app‖、“u-boot‖、“doc”来归类源代码、文档、项目管理。规划的项目管理流程中,有一个配置管理计划文档(图2-4)。

图2-4

2.2.2 配置用户访问权限

可以针对组和单个用户进行管理。

同一组可以给于不同的权限,每个用户也可以配置成不同的权限。

创建用户,通过快捷菜单(图2-5),输入用户名和口令,点击OK。

图2-5

创建组,通过快捷菜单(图2-6),输入用组名,添加组成员,点击OK。

图2-6

创建组app(图2-7)。

图2-7

针对目录,配置访问权限:不可访问,只读,可读可写。

例如,针对project目录,配置project组的可读可写权限(图2-8)。

图2-8

3. SVN client,TortoiseSVN和Linux中的SVN命令。

3.1 下载TortoiseSVN

官方网站:https://www.wendangku.net/doc/7d15247314.html,/downloads.html

The current version is 1.7.7。

3.2 TortoiseSVN的基本操作

访问SVN server中的资料库(图3-1)。

图3-1

输入帐号和口令登录后(图3-2)。

图3-2 通过快捷菜单,弹出操作菜单(图3-3):

图3-3

Show log: 显示日志。

Revision graph: 修订版本图。

Export: 导出资料库,不做版本控制。

Checkout: 签出资料库,做版本控制。

同时,在Windows的资源管理器中,自动加下SVN的快捷菜单(图3-4)。

图3-4

如果对已加入SVN版本控制的目录右击,弹出的快捷菜单(图3-5)。

图3-5

对加入SVN版本控制的单个文件,快捷菜单(图3-6)。

图3-6

可以对当前的工作版本和SVN库里的版本进行比较,例如Linux kernel的.config配置文件(图3-7)。

图3-7

3.3 Ubuntu 10.04,svn命令

安装svn client命令:

# apt-get install subversion

svn帮助命令:

#svn help

usage: svn [options] [args]

Subversion command-line client, version 1.6.6.

Type 'svn help ' for help on a specific subcommand. Type 'svn --version' to see the program version and RA modules

or 'svn --version --quiet' to see just the version number.

Most subcommands take file and/or directory arguments, recursing on the directories. If no arguments are supplied to such a command, it recurses on the current directory (inclusive) by default.

Available subcommands:

add

blame (praise, annotate, ann)

cat

changelist (cl)

checkout (co)

cleanup

commit (ci)

copy (cp)

delete (del, remove, rm)

diff (di)

export

help (?, h)

import

info

list (ls)

lock

log

merge

mergeinfo

mkdir

move (mv, rename, ren)

propdel (pdel, pd)

propedit (pedit, pe)

propget (pget, pg)

proplist (plist, pl)

propset (pset, ps)

resolve

resolved

revert

status (stat, st)

switch (sw)

unlock

update (up)

Subversion is a tool for version control.

For additional information, see https://www.wendangku.net/doc/7d15247314.html,/

4. SVN版本控制过程

4.1 Linux kernel开发环境

因为我习惯在Windows xp中安装VMware,在VMware中安装Linux(这里使用Ubuntu 10.04), Ubuntu中安装ssh, samba, nfs, tftp服务。

tftp、nfs用于方便开发调试。

samba用于Windows和Linux之间的文件共享,在Windows上映射网络驱动器。

在Windows xp上使用Source insight来做Linux kernel开发,个人认为这是最好的方法。

用Putty, winscp, SecuCRT通过ssh 登录到Linux上编译。

所以SVN Server安装在Windows上。

Tips:Linux 上支持链接文件,通过Samba共享,Windows不支持链接文件,所以对Linux kernel源代码目录树,一定要用Linux上的svn命令进行版本控制,否则会编译出错(没有深入研究,我认为是链接文件的原因)。

4.2 SVN版本控制基本流程

4.2.1 SVN server side

建立好资料库,配置好资料库目录,用户名,组,各个组或者用户的访问权限。

操作过程见2.2节。

4.2.2 SVN client side

把源代码或者文档导入到SVN server

#svn import ./ Eyesight_SoC ?https://10.0.0.159:8443/svn/Eyesight_SoC‘–m ―init‖

说明:

svn import:svn导入命令

./ Eyesight_SoC:目录名称

?https://10.0.0.159:8443/svn/Eyesight_SoC‘:svn server资料库地址

-m ―init‖: 日志内容

checkout到本地工作目录

#svn checkout ?https://10.0.0.159:8443/svn/Eyesight_SoC‘ ./

说明:

svn checkout:svn 签出命令。

?https://10.0.0.159:8443/svn/Eyesight_SoC‘:svn server地址。

./:当前目录。

查看svn版本控制信息:

root@wenxy-desktop:/home/wenxy/src/Xilinx/kernel/linux-2.6.35.3# svn info Path: .

URL: https://10.0.0.62:8443/svn/wenxy/trunk/kernel/linux-2.6.35.3

Repository Root: https://10.0.0.62:8443/svn/wenxy

Repository UUID: 28bcbc35-b5f1-a44b-91de-c8eadf4cf8d3

Revision: 109

Node Kind: directory

Schedule: normal

Last Changed Author: wenxy

Last Changed Rev: 109

Last Changed Date: 2012-07-10 14:44:53 +0800 (Tue, 10 Jul 2012)

查看工作版本和资料库的变化:

root@wenxy-desktop:/home/wenxy/src/Xilinx/kernel/linux-2.6.35.3# svn st|grep M M .config.old

M .version

? arch/arm/plat-mxc/sdma/iapi/src/.iapiMiddleMcu.o.cmd

? arch/arm/plat-mxc/sdma/iapi/src/.iapiLowMcu.o.cmd

? arch/arm/plat-mxc/sdma/iapi/src/.iapiMiddle.o.cmd

M .config

M include/generated/utsrelease.h

M include/generated/autoconf.h

M include/generated/compile.h

M include/config/kernel.release

M include/config/auto.conf

M include/config/tristate.conf

M Module.symvers

M make.log

? drivers/sbc1651/Module.symvers

root@wenxy-desktop:/home/wenxy/src/Xilin

说明:

M表示修改过的文件。

?表示新增加的文件,还没有加入版本控制,先用svn add命令加入相应的文件,然后用svncommit 命令提交对应的文件。如果要对整个工程目录做提交前,一定要先svn up同步更新下,已防止多人共同修改过同一个文件而冲突。

向资料库新增加文件或者目录

#svn add file-name or directory

#svn commit file-name or directory –m ―your comment‖

如果放弃本地修改的文件,恢复到上一个版本

#rm file-name

#svn up

或者

#svn revert file-name

提交修改的文件或者目录

#svn commit file1 file2 directory –m ―title: modification‖

警告:提交到资料库中,至少要保证源代码能编译通过!这是最基本的原则,并且要加上简洁明了的注释,例如–m ―I2C driver: fix up bug 12: kernel oops‖。

版本比较

#svn diff file-name

例如:

root@wenxy-desktop:/home/wenxy/src/Xilinx/kernel/linux-2.6.35.3# svn diff .config

Index: .config

===================================================================

--- .config (revision 109)

+++ .config (working copy)

@@ -1,7 +1,7 @@

#

# Automatically generated make config: don't edit

# Linux kernel version: 2.6.35.3

-# Wed Mar 7 12:33:26 2012

+# Thu Aug 2 10:30:34 2012

#

CONFIG_ARM=y

CONFIG_HAVE_PWM=y

@@ -79,6 +79,7 @@

CONFIG_UID16=y

CONFIG_SYSCTL_SYSCALL=y

CONFIG_KALLSYMS=y

+# CONFIG_KALLSYMS_ALL is not set

# CONFIG_KALLSYMS_EXTRA_PASS is not set

CONFIG_HOTPLUG=y

CONFIG_PRINTK=y

svn版本控制工具

第1节背景及svn简介 svn是subversion 缩写,它是一个自由、开放源码、多用户的版本控制系统, 支持通过本地或远程访问数据库和文件系统存储库。Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。许多人会把版本控制系統想像成某种“时光机器”。 版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。 SVN 不但提供了常见的比较、合并、标记、提交和分支功能,SVN 还增加了追踪移动和删除的能力。此外,它还支持非ASC Ⅱ文本和二进制数据、原子性提交、HTTP 访问等特性,当SVN 被广泛使用时,也需要有个管理工具能够更方便安全地维护SVN 的用户、组、权限、库等内容,协助普通用户更好地配置管理SVN,而无需都交由可能比较繁忙的系统管理员维护。而基于Web 的Subversion 管理工具将是一种非常适合的选择。SVN 可以支持windows 和Linux 两种操作系统,在两种操作系统上运行都具有稳定性和安全性。

SVN 在设计上包括了一个抽象的网络层,这意味着SVN 的版本库可以通过各种服务器进行访问,而允许程序员为客户端“版本库访问”的API 写出先关协议的插件,理论上讲,SVN 可以使用无限数量的网络协议,目前提供了有两种服务器运行方式:一种是Subversion Standalone Server。即svnserve,一个小型的独立服务器,另一种是基于Apache Http Server,即Web 服务器,它通过mod_dav_svn 模块,客户端使用WebDAV/DeltaV 协议进行访问。 SVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。 SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。 SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的

SVN使用手册(最全版)

SVN环境搭建及使用手册 一、SVN介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 二、SVN安装包介绍(安装包存放在服务器上D:\安装包\SVN) 服务端:SVN服务端安装包是VisualSVN-Server-3.6.0-x64.msi。 客户端:客户端软件主要包括下列3个文件 1. TortoiseSVN-1.8.8.25755-x64-svn-1.8.10.msi ----SVN客户端安装包 2. LanguagePack_1.9.5.27581-x64-zh_CN.msi ----SVN客户端语言包 3. AnkhSvn-2.5.12471.17.msi -----SVN针对Visual Studio的插件 三、搭建SVN服务端详细说明 第一步:搭建SVN团队项目、在服务器上打开已安装的SVN服务端、新建一个项目文件夹、创建完成后、右键项目复制项目URL 具体如下图

第二步:创建SVN用户、及设置密码、如下图 第三步:SVN服务端创建项目完成及创建用户后、使用SVN客户端将程序代码等文件提交上去、选中需要提交的程序文件、并填写正确SVN服务端项目的URL地址、

四、在日常开发中使用SVN的常用操作主要有:签出程序、文件合并、代码文件撤销、版本回滚、及历史版本控制等 说明:使用SVN版本控制,必须遵循4个原则。 1.新建文件前获取最新的程序代码、新建文件后先提交文件、再进行详细开发或编辑。 2.尽量避免多人同时处理同一个文件(svn毕竟不是那么优秀、无法智能将代码成功合并)。 3.项目成员提交程序前、必须获取最新的程序、编译且没问题、再进行提交操作。 4.提交代码必须选择解决方案进行代码提交、请勿选择其中某项目进行提交。 (1)签出最新程序:选择解决方案右键--》Update Solution to Latest Version, 如下图 (2)代码文件合并:如svn上的文件与本地文件产生冲突、则会在Pending Changes 中高亮显示、双击文件打开双方文件差异、合并完成后、点击Commit进行合并后文件提交。如下图

利用SVN对软件项目进行版本控制管理_闫晗

TECHNOLOGY TREND [摘要]在中小规模软件项目的开发过程中,通常由多人分工、共同完成,这就涉及到大量的源代码和文档。即使在沟通充分情况下,多 人维护同一份源代码也会出现混乱情况,如何对这些源代码和文档进行有效版本管理,并进行最终整合,是软件项目能否成功的关键之一。[关键词]版本控制;SVN VisualSVN ;Server ;TortoiseSVN 利用SVN 对软件项目进行版本控制管理 闫晗 (天津港信息技术发展有限公司,天津市 300000) 在中小规模软件项目的开发过程中,通常由多人分工、共同完成,这就涉及到大量的源代码和文档。即使在沟通充分的情况下,多人维护同一份源代码也会出现混乱的情况,如何对这些源代码和文档进行有效的版本管理,并进行最终整合,是软件项目能否成功的关键之一!本文简要介绍一套Windows 操作系统下利用免费、开源软件构建的高效、可靠的SVN 版本管理系统及其日常备份方法。 1SVN 简介SVN (Subversion )是一种版本管理系统,其前身是CVS (Con-currentVersions System ),它是根据CVS 的功能为基础来设计的,它除包括了CVS 的大多数特点外,还有一些新的功能:文件目录可以方便的改名、基于数据库的版本库、操作速度提升、权限管理更完善等。 SVN 通过对不同项目建立各自独立的版本库进行管理,每个版本库很像一个基于数据库的文件服务器,可以记录每一次文件和目录的修改内容,这使得用户可以取得文件以前的版本,检查所做的任何更改。SVN 采用HTTP 方式访问版本库,从而使用户可以在不同的电脑上获得(CheckOut )项目文件,经修改后再提交(Import )到SVN 服务器。另外,SVN 允许多个用户对同一份文件进行修改,当提交(Im-port )到SVN 服务器时会自动对该文件的不同用户版本进行融合(Merge )。当融合过程中有冲突(Conflict )发生时,SVN 会给出提示信息,用户可以借助SVN 的文档比较功能来解决冲突。 借助SVN 的版本管理,所有开发人员的项目文件都可被同步更新,因而开发工作可能变得非常顺利。文章所介绍的SVN 版本管理系统主要用到VisualSVN Server 和TortoiseSVN 这两个软件,VisualSVN Server 是一款图形化的SVN 服务器软件,提供Subversion 、Apache 服务器(提供HTTP 服务)和用户及权限管理等功能;TortoiseSVN 作为一款SVN 客户端软件,通过将功能项目嵌入到资源管理器的右键菜单,并借助其强大的图形化操作方式为用户提供方便快捷的SVN 服务。读者可以在https://www.wendangku.net/doc/7d15247314.html, 和https://www.wendangku.net/doc/7d15247314.html,/免费下载到这两个软件的最新版本。 2SVN 系统配置和使用2.1服务器端 在服务器安装端VisualSVN Server 的过程中,需要填写一个HTTP 服务端口号,如要采用安全连接,可勾选“Use secure connec-tion(https://)”选项,其他部分采用默认设置即可。 VisualSVN Server 中主要包括版本库(Repositories )、用户( Users )和组(Groups )三部分,通过各自上下文菜单可以新建版本库、用户和组。通过版本库的上下文菜单“Properties ”可以设置其访问用户和权限,同时其HTTP 访问地址也可通过右键菜单“CopyUrlto Clipboard ”拷贝至剪贴板,例如:http://192.168.0.55:8888/svn/a-jsys/。至此,一个新版本库建立完成,非常高效、便捷! 2.2客户端 安装过程无需太多配置,安装完成并需要重新启动后,资源管理器的右键菜单会增加多个TortoiseSVN 项目。 接下来向SVN 服务器中导入项目,项目结构可以按照“项目源码”、“项目文档”等进行分类以方便管理。在项目文件夹上点击右键并选择“Import ”菜单,在弹出的对话框中的“URLofrepository ”中填入刚才拷贝的URL 地址并点击OK ,在填入用户名和密码后,即可开始将项目导入SVN 服务器。 在导入完成后,还需要对刚才导入的项目通过右键上下文菜单“SVNCheckout ”检出,以后在该文件夹中对文件所进行的新增、修改、删除等操作都将被SVN 记录。 被纳入SVN 管理的文件夹和文件图标会根据不同状态发生改变,常见的有:“绿色√”表示没有被本地修改过;“红色!”表示被本地修改过;“黄色!”表示和服务器上版本存在冲突且无法自动融合;“蓝色?”表示该文件或文件夹为新增,不受版本控制,可以在提交对话框中选择是否提交到SVN 服务器。 在检出后的项目文件夹上点击右键,我们会发现新增了许多Tor-toiseSVN 菜单项,下面对常用的几个菜单进行介绍: SVNUpdate-更新,使本地项目文件与SVN 服务器进行同步。 SVNCommit-提交,提交本地修改后的项目文件至SVN 服务器,以便其他项目成员进行同步更新。 Revert-还原,可以将指定文件或文件夹还原至服务器最新版本。Show Diff-显示不同,该功能十分有用,主要用于本地版本与服务器版本存在冲突时进行对比。 通过以上的简单操作,我们已经构建起一套完整的SVN 版本控制系统,完全可以胜任中小规模软件开发的版本控制管理。SVN 服务器中存储着各个项目的版本库数据,因此也要做好这些数据的日常备份。 3SVN 服务器备份 VisualSVNServer 在数据备份方面提供了一条svnadmin 命令,借助批处理程序并结合Windows 系统的“任务计划”功能对版本库数据进行备份。 备份过程主要涉及到2个文件:backup.bat 和backupcmd.bat 1)backup.bat 文件作为主程序,其主要内容为:@echooff setSVN_HOME="C:\Program Files\VisualSVNServer"setSVN_ROOT=E:\Repositories setBACKUP_SVN_ROOT=E:\svnrootbak setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT %\%date ~0,10%、 ifexist%BACKUP_DIRECTORY %gotocheck mkdir%BACKUP_DIRECTORY % for/r%SVN_ROOT %%%Iin(.)do@ifexist"%%I\conf\svnserve conf"call%BACKUP_SVN_ROOT %\backupcmd.bat"%%~fI"%%~nI end 2)backupcmd.bat 文件作为副程序被backup.bat 调用,其内容 为: @%SVN_HOME%\bin\svnadmin hotcopy%1%BACKUP_DI-RECTORY %\%2 本例中,在SVN 服务器分区E 下建立文件夹svnrootbak ,并将上 述三个文件拷贝至该文件夹下,通过Windows 的任务计划功能设定在每天特定时间执行backup.bat ,即可实现无人职守的版本库备份。 在中小规模软件项目的开发过程中,为了进行有效的协同开发而进行版本控制是一个基本要求。近两年,基于开源的SVN 构建的版本控制系统逐渐成为对软件项目开发进行版本控制的首选。但版本控制不只局限于软件开发领域,在档案管理、信息管理等领域也可得到应用。 应用科技 59

项目管理版本控制SVN实践教程

针对原文做了两个修改,见文中【修改】部分,不然不能正确配置服务器,并且添加了一些注释(flywen 2010-9-28) 原文出处: https://www.wendangku.net/doc/7d15247314.html,/ttzhang/archive/2008/11/03/1325102.html https://www.wendangku.net/doc/7d15247314.html,/ttzhang/archive/2008/11/04/1325940.html 文章版权归原作者Forrest Zhang所有。 一、VisualSVN Server的配置和使用方法【服务器端】 1.1 VisualSVN Server的安装 最新版本是1.6.1,你可以在这里下载: https://www.wendangku.net/doc/7d15247314.html,/files/VisualSVN-Server-1.6.1.msi VisualSVN Server,最新更新版本是1.6.2,你可以在这里下载: https://www.wendangku.net/doc/7d15247314.html,/files/VisualSVN-Server-1.6.2.msi VisualSVN Server Documentation下载: https://www.wendangku.net/doc/7d15247314.html,/server/doc/VisualSVN-Server.pdf 下载后,运行VisualSVN-Serv er-1.6.1.msi程序,点击Next,下面的截图顺序即为安装步骤: 图1:

图2: 注意:Server Port那里,默认端口有80/81/8080三个;如果最后面的CheckBox被选中,则表示使用安全连接【https协议】,这是的端口只有433/8433二个可用。Location 是服务器端的安装位置,Repositories是代码仓库,这里保留一份总的代码,别人的需要从中check out代码,修改后再commit回这个仓库 图3:

SVN版本控制系统中文版资料

版本控制系统(集中模式) (1) 版本控制系统指南 (5) 软件发行版本指南 (21) 版本控制系统(集中模式) 库与工作桌面的比较 工作桌面: 开发人员可以在本地修改维护源代码和版本控制系统中的文档。 库: 源代码的存储和修改记录集中在服务器上的版本控制系统中。 TortoiseSVN(小乌龟系统)介绍 1.文件描述 2.Windows资源管理器扩展。

版本控制系统核心操作 1.(检测) 2.(提交) 3.(更新) 4.(导入) 5.(导出) (检测)介绍 1.从库和存储在本地的版本控制系统中获取一个工作副本。 2.一次性操作 3.检测工作副本来源 4.本步骤应是第一步操作。

in sync(同步)

(提交)介绍 1.同步本地文件夹和库中的文件。 2.本地文件修改包括:文档和源代码的修改、删除和添加操作。 (提交)注意事项 1.应该一次性提交概念、功能和任务文件。 2.应该要确保提交的文件可以被成功编译。 3.将更改日志加入体骄傲信息中。

版本控制系统指南 1.工作区的所有文件夹和文件的图标都应该有一个标志来表明他们在资源管理器中的地位。 2.'.svn'文件夹保存版本信息。 版本控制系统修订编号 1.修订数字不仅表示本地工作区中的版本号也表示存储库的版本号。 2."HEAD"表示最新版本。 修改日志消息 修改版本跟踪: 1.修订版本号 2.作者 3.版本信息 4.修改的文件

(更新)介绍 1.从资源库中的修改更新到本地工作副本 2.同步存储库工作区;在同步时应该注意可能会发生冲突,版本控制系统可能会提示限制。

SVN版本管理工具的安装和使用

SVN的安装和应用手册 整理人:向楠

目录 一、Svn安装所需的文件 (3) 二、安装步骤 (3) 1.安装Apache (3) 2.安装SVN服务器端 (7) 3.安装SVN客户端 (10) 4.汉化SVN客户端 (12) 三、配置步骤 (13) 1.配置SVN服务器端 (13) 四、使用SVN (20) 1.进入SVN文件夹 (20) 2. 往SVN中放入文件 (22) 3. 从SVN中导出文件 (24) 4. 在SVN中更新文件 (26)

SVN的安装和应用: svn(subversion)是一款B/S架构近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。安装时要配置Apache。 一、S vn安装所需的文件 1. Apache- 2.2 web服务器软件安装包 2. VisualSVN 服务器端安装包 3.TortoiseSVN 客户端安装包 4. SVN 汉化包 (如下图:) 二、安装步骤 1.安装Apache 安装前首先看看 1.计算机中有没有apache以前安装过的残留的垃圾文件和文件夹。如 果有的话、先将这些文件清理干净,再进行安装。 2.计算机中有没有安装IIS(网络信息服务),如果有的话,先将IIS关 闭掉,或者将其默认的端口号80改为其他端口号,因为Apache的默认端口号也是80端口,两个端口会发生冲突。 (1)双击打开Apache安装包,单击“next”;

(2)选择“I accept……”,单击“next” (3)单击“next”; (4)按照给出的“eg”填写好信息,选择“for……”,单击“next”;

Svn版本管理教程

用subversion(SVN)进行版本管理 老是给别人讲svn,花时间太多,近来无事,就写了subversion的版本管理技巧,基本的没多讲,只捡重要的写了一下,以便一劳永逸,希望有用。 好难编辑,终于搞完了... 版本管理约定 程序员编写程序的过程中,每个程序都会有很多不同的版本,这就需要程序员很好的管理代码,在需要的时间可以取出需要的版本,并且每个版本都有一个完整的说明。 我们使用Sub Version(简称SVN)作为版本管理工具。这里着重介绍SVN作为跨平台的多人协作使用方法。在多个程序员管理同一段代码的过程中,版本的管理显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本。 SVN基本配置 在开始某项软件、文档的开发与撰写时,首先由配置管理负责人建立SVN仓库、用户名及其权限,并通知相关人员SVN仓库地址、SVN仓库负责人。 配置强制注释 SVN仓库的负责人把工程的tsvn:logminisize设置为1,以便强制注释。设置方法:在你的工程文件夹右键->属性中,进入 Subversion标签,选中tsvn: logminisize,确保复选框recursive 选中,然后点击Set按钮把它的值设为1,其意思是指提交的注释最短长度为一个字。如图:

SVN软件配置 1.忽略文件 在SVN 的[Setting]的[General]中,设置需要忽略的文件以便忽略掉一些临时的、无用的文件,常被忽略的文件有*.opt *.ncb *.suo *.plg *.pch *.idb *.pdb *.scc *.obj Debug Release *.o *.bin *.out *.ilk *.aps debug release *.clw *.bak。每个程序员可以根据自己的需要进行修改忽略文件,上面只是使用VC++与Tornado编程时常用的一些忽略文件。

SVN版本管理规范

通联支付网络服务股份有限公司技术支持中心研发部版本管理规范 受理市场支持部 2011年1月

版本控制信息

目录 文档类别使用对象.... 错误!未定义书签。1.引言............. 错误!未定义书签。 目的.......................................................... 错误!未定义书签。 范围.......................................................... 错误!未定义书签。 术语定义...................................................... 错误!未定义书签。 2.版本管理......... 错误!未定义书签。 2.1版本标识方法.............................................. 错误!未定义书签。 2.1.1版本标识说明........................................ 错误!未定义书签。 2.2目录结构 ................................................. 错误!未定义书签。 2.3版本的存放................................................ 错误!未定义书签。 trunk ..................................................... 错误!未定义书签。 branches .................................................. 错误!未定义书签。 tags ...................................................... 错误!未定义书签。 files ..................................................... 错误!未定义书签。 script .................................................... 错误!未定义书签。 sql ....................................................... 错误!未定义书签。 2.4权限控制管理.............................................. 错误!未定义书签。 3.更新管理(版本升级).错误!未定义书签。 版本升级原则.................................................. 错误!未定义书签。 新版本的发布................................................. 错误!未定义书签。 版本管理流程说明 .......................................... 错误!未定义书签。 版本管理简略流程图 ........................................ 错误!未定义书签。 角色定位说明.............................................. 错误!未定义书签。 版本管理守则.............................................. 错误!未定义书签。4.备份管理......... 错误!未定义书签。5.SVN常用命令说明. 错误!未定义书签。

项目svn版本控制中的分支策略

[原创]项目svn版本控制中的分支策略 [原创]项目svn版本控制中的分支策略分类: tool svn 2010-06-10 23:14 2822人阅读 评论(0) 收藏 举报 [原创]项目svn版本控制中的分支策略 by AKara 2010-06-07 @ https://www.wendangku.net/doc/7d15247314.html,/akara @ akarachen(at)https://www.wendangku.net/doc/7d15247314.html, @https://www.wendangku.net/doc/7d15247314.html,/akaras 结合项目运营的一些体会,浅谈一下项目中经常用到的分支策略。从一个很旧的PDF <<Essential CVS>> 上发现了一些篇章,回头一读发现 多年前精简的原则阐述放到现在来说,仍有非常好的指导意义,基本涵盖我 打算要总结的内容了,干脆翻译一遍它。虽然用的是svn,

但是应该和cvs本质 上是相同的理念~ --------------------------------------------------------------------- (翻译仓促,如需转载请先联系:https://www.wendangku.net/doc/7d15247314.html,/akara / akaras@https://www.wendangku.net/doc/7d15247314.html,)4.4 Branching Strategies 本章将讲述分支策略中的基本原则以及两种主要的分支 原则。 并给予一些关于何时/为何你需要在一个项目中开辟分支的解答。4.4.1 Branching Philosophies 关于分支的经验法则是:保持开发的主线位于trunk(主干)上;而其他的一切, branch(分支)。问题在于如何界定哪些是开发的主线。trunk 应该只包含稳定 的代码还是也可容忍不稳定的代码?是否在每个release被测试前都应该分支? 新功能应该在trunk上开发还是在一个branch上开发?上面这些疑问都源于我们对'开发的主线'有两种不同的定义。这两种定义引出 了两种截然不同的分支原则,术语上称basically stable和basically unstable。4.4.1.1 Basically stable 顾名思义这个分支原则主导思想是trunk只包含稳定的随

SVN版本控制工具介绍报告

SVN版本控制工具介绍Version history

SVN版本控制工具介绍 (1) Version history (1) 目录 (2) 前言 (3) 术语 (4) 1. SVN简介 (4) 1.1 SVN的历史 (4) 1.2 SVN的特点 (5) 1.3 SVN Client图形化软件 (6) 1.4 其它版本控制工具,VSS,CVS,GIT (6) 2. SVN server,VisualSVN-Server (7) 2.1 下载安装VisualSVN-Server (7) 2.2 配置VisualSVN-Server (8) 2.2.1 创建资料库 (8) 2.2.2 配置用户访问权限 (10) 3. SVN client,TortoiseSVN和Linux中的SVN命令。 (12) 3.1 下载TortoiseSVN (12) 3.2 TortoiseSVN的基本操作 (12) 3.3 Ubuntu 10.04,svn命令 (17) 4. SVN版本控制过程 (18) 4.1 Linux kernel开发环境 (18) 4.2 SVN版本控制基本流程 (18) 4.2.1 SVN server side (18) 4.2.2 SVN client side (18) 4. 3 SVN高级主题 (22) 5. 参考资料 (23)

版本控制(Revision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。 本文档介绍了SVN server、client的安装,配置,和使用。 SVN server使用Windows版本,VisualSVN-Server-1.7.2.msi。 SVN client使用Windows版本,TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi,和Ubuntu Linux 32-bit,svn, version 1.6.6 (r40053)。 读者可以根据需要下载最新的稳定版本。

VisualSVN Server +TortoiseSVN版本控制系统指南

版本控制在公司内部VisualSVN Server +TortoiseSVN方式 版本控制服务器上安装VisualSVN Server 控制版本控制服务与库操作的权限分配各网内客户机采用TortoiseSVN输入各自账号与服务进行通信。 客户机TortoiseSVN安装和使用参考《TortoiseSVN-1.6.8-zh_CN.pdf》 一、服务器VisualSVN Server安装 VisualSVN Server 的安装文件:VisualSVN-Server-3.3.0-win32.exe, 服务器系统要求: Windows Server 2008 or later Windows Vista or later 硬件要求: 1.4 GHz CPU 512 MB RAM 50 MB hard drive space

Visual SVN的安装非常的简单, 【1 】几乎是下一步。 【2】选择 visualVSN服务器和管理控制台或只有管理控制权限

【3】选择程序安装的路径、Subversion Repository(库)的路径和所使用的协议和端口。 你可以选择HTTP和HTTPS两种协议,如需使用svn协议也非常的方便,在1.4版本后,Subversion加入了Service运行的功能。端口号可以任意定义。对于HTTPS的端 口号默认可以选择443和8443,对于HTTP默认可以选择80、8080和81。

个人偏向于使用HTTPS的8443端口,原因很简单HTTPS安全性比较高,虽然443端口是标准HTTPS端口,但如果做WEB开发那肯定就有麻烦,同时Skype也会使用这个端口进行某些通讯。 还有就是下面的用于验证的身份,一个是windows验证,一个是Subversion身份验证 这里默认是Subversion身份验证。 【4】接着就是复制文件的过程。

TortoiseSVN使用简介

TortoiseSVN使用简介 2015-05-22 上海天畅信息技术有限公司

1 SVN简介 1.1 什么是SVN(Subversion)? 有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器 简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容。并且自动的赋予每次的变更一个版本。 通常,我们称用来存放上传档案的地方就做Repository。用中文来说,有点像是档案仓库的意思。不过,通常我们还是使用Repository这个名词。基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository 上面。日后,当您有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN server的意思。针对每次的commit,SVN server都会赋予他一个新的版本。同时,也会把每次上传的时间记录下来。日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。 1.2 SVN的应用场景 1.2.1 备份 您永远不知道计算机上的硬盘何时会坏掉。根据经验法则再加上摩菲定理,坏事情往往都发生在最重要的时刻。例如,要release东西的前一刻,硬盘完全坏掉,无法修复。所以,常常备份工作数据是非常重要的。大部分公司的server 都会有专门的备份机制,甚至是异地备援。绝对比放在自己的计算机里头,或是随身碟上面来的安全。 SVN Repository可以是自己计算机上的一个目录,或者是随身碟(不建议这样用)。当然也可以是公司的服务器。 1.2.2 版本控管 您无法保证手头上最新版本永远都是对的。很多时候,在经过数天努力工作后,您才发现走错方向。需要将所有的修改回复到数天前版本。没有几个人能够完全记住自己修改过什么东西。如果没有做好版本控管,那么,最差的状况就是要全部重来。 SVN有很棒的版本控管机制。所有上传的版本都会帮您记录下来。日后您可

SVN版本管理与提交代码规范

SVN版本管理,提交代码规范 项目开发要求: 1、工作目录要及时更新,不要和SVN服务器有太大的差别 2、提交代码时,如果出现冲突,必须仔细分析解决,不可以强行提交 3、提交代码之前先在本地进行测试,确保项目能编译通过,且能够正常运行,不可盲目提交 4、必须保证SVN上的版本是正确的,项目有错误时,不要进行提交 SVN注意事项,请严格按照操作顺序操作,避免提交代码导致重大事故: 一.提交之前先更新 1.SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。 2.如果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。 3.在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错 二.保持原子性的提交

每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。 三.提交时注意不要提交本地自动生成的文件 一般配置管理员都会将项目中一些自动生成的文件或者与本地配置环境有关的文件屏蔽提交(例如eclipse中的.classpath文件等)。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。 四.不要提交不能通过编译的代码 代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。 五.不要提交自己不明白的代码 代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。 六.提前协调好项目组成员的工作计划 项目经理应该合理分配工作计划。每个成员在准备开始进行某项功能的修改之前,如果有可能,先跟工作小组的成员谈谈自己的修改计划,让大家都能了解你的思想,了解你即将对软件作出的修改,这样能尽可能的减少在开发过程中可能出现的冲突,提高开发效率。同时你也能够在和成员的交流中发现自己之前设计的不足,完善你的设计。 七.对提交的信息采用明晰的标注(写注释)

项目版本管理方法SVN

SVN管理项目版本1.方案1 1.1.按类别划分代码库 Trunk(1个):稳定版 Test(1个):测试版 Dev(1个或多个):开发版 1.2.优缺点 优点: 开发人员只需要关注dev库即可 缺点:

1.3.图解 1.4.执行过程 ●在项目启动的时, 运维人员创建trunk库,test库,dev库●开发初始版本时, 开发人员在dev库上开发, ●当开发完第一个运行版本后 开发人员将dev中的代码合并到test库中●测试人员从test库中checkout代码,进行测试●测试成功后, 测试人员将test中的代码合并到trunk中●运维人员从trunk库中checkout代码进行部署

●有新功能增加,或需求更改,或修改bug的时候 开发人员在dev库中进行开发 ●出现多个dev库的情况: 开发人员开发了功能fa,并提交到test,测试人员进行测试,此时,又需要开发新的功能fb,开发人员还在dev中进行开发,并且新功能fb开发完成,此时,测试人员还没有测试完功能fa,现在有新功能fc要开发,此时,就不能在dev上进行开发了,因为fb功能还没有合并到test,所以需要在dev上开一个分支dev1,然后在dev1上开发fc,这样就出现了第二个dev库,dev1 在开发fc功能的时候,测试人员测试完毕了fa,那么就将dev中的fb功能提交到test,此时dev就没有用了,可以删掉dev,以后的工作都在dev1上进行开发,在测试完fb 功能后,就将dev1中的fc功能合并到test中。 1.5.参与人员以及职责 开发人员: 关注dev库,开发某一阶段后,由项目经理将dev库内容合并到test库。 测试人员: 关注test库,测试成功后,由测试人员(或测试经理)将test库内容合并到trunk库。运维人员: 关注trunk库,将trunk库中内容checkout,并部署到正式环境。

利用SVN进行版本控制

利用SVN进行版本控制 Altium designer summer09支持利用第三方的版本控制软件进行版本控制,如比较流行的SVN、CVS、SCCI、MatrixOne等软件。本例介绍如何利用SVN版本控制软件与altium designer软件集成实现版本控制的方法。 第1步:安装SVN SVN软件是一款免费的开源软件,用户可以直接在网上下载。运行SVNSetup.exe开始安装,只需按提示单击下一步即可完成安装。如下图所示: 第2步:从altium designer中设置SVN调用路径: 打开菜单DXP?Preferences,展开Version Control树,按下图所示的选项进行设置。

第3步:生成SVN版本控制库: 生成SVN版本控制库之前需要用硬盘空间上新建一个空的文件夹(本例新建的文件夹路径:D:\Version Control),然后打开一个PCB项目,单击菜单【Project】?【Version Control】?【Create Repository】将弹出一个对话框,将文件夹路径指定到新建的文件夹并单击【OK】,随后系统将提示控制库己经顺利生成。如下图所示: 第4步:将设计工程纳入到SVN版本控制管理 单击菜单【Project】?【Version Control】?【Add Project to Version Control】将弹出一个对话框,按下图所示的方法设置好之后随后将会看到工程树的右边有一些小勾符号即表示设置成功。

第5步:修改后的文件进行版本控制: 当一个项目被纳入SVN 管理后,用户在后续对项目中任何文件作改动都将会被记录,存储后软件将在文件的目录树中提示一个红色的叹号,表示文件有被改动。被改动过的文件

SVN命令大全

目录 1、将文件CHECKOUT到本地目录 (2) 2、往版本库中添加新的文件 (2) 3、将改动的文件提交到版本库 (2) 4、加锁/解锁 (2) 5、更新到某个版本 (2) 6、查看文件或者目录状态 (2) 7、删除文件 (3) 8、查看日志 (3) 9、查看文件详细信息 (3) 10、比较差异 (3) 11、将两个版本之间的差异合并到当前文件 (3) 12、SVN帮助 (3) 13、版本库下的文件和目录列表 (4) 14、创建纳入版本控制下的新目录 (4) 15、恢复本地修改 (4) 16、代码库URL变更 (4) 17、解决冲突 (4) 18、输出指定文件或URL的内容。 (5)

1、将文件CHECKOUT到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage” [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关) 例如:svn commit -m “add test file for my test” test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage” [--force] PATH 例如:svn lock -m “lock test file” test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改

相关文档