Subversion Fox

  • Uploaded by: wei
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Subversion Fox as PDF for free.

More details

  • Words: 1,838
  • Pages: 88
Subversion 版本控制 ( Version Control with Subversion ) 李树仁 2007-01-19

Subversion 1. Subversion 简介 2 、版本控制的基本知识 3 、 subversion 常用功能讲解 4 、客户端工具 tortoiseSVN 5 、 eclipse 插件 subeclipse 的使用介绍 6 、使用 svn 中常见问题 7 、 csdb 版本管理规则

一、 Subversion 简 介 • 版本控制是管理信息变更的一门艺术。 • 版本控制工具早已经成为许多程序员的主要工具之 一。 • 版本控制软件的用途并不仅限于软件开发的领域 , 只要人们使用计算机来管理经常变更的信息,就需 要使用版本控制工具 。 • Subversion 的一个概括性的介绍: Subversion 是 什么?它用来做什么?以及如何得到它 。

什么是 Subversion ? • Subversion 是一个自由的、开放源码的版本控 制系统 • 它可以管理各个时刻的文件和目录 。 • Subversion 将文件存放在 repository 库中。这个 仓库非常类似于一个普通的文件服务器 ,只是 它还可以记录文件和目录曾经做过的每一次变更 。 • 可把版本控制系统比作一种“时间机器” 。

什么是 Subversion ? • Subversion 的仓库可以通过网络来访问,允许不 同的用户在不同的计算机上使用 。 • 不同的使用者可以进行协同工作 。而且所有工作 都是有记录的,如果有错只要撤销就可以。 • Subversion 只是版本控制系统,不是软件配置管 理系统 (SCM) 。 • 它是一个通道,可以管理任何计算机中的文件系 统。

What is Subversion not ? • svn is not a build system . • svn is not a substitute for management. • svn is not a substitute for developer Communication. • svn does not have change control . • svn is not an automated testing program.

Subversion 的历史 • CVS 有明显的局限性和功能上的不足。 • 2000 年开始 , CollabNet 公司 就开始着手开发新的版 本控制系统来代替 CVS 。 • Karl Fogel 和 Jim Blandy 是 CVS 开发者,加入到开发 subversion 当中。 • 他们让 Subversion 来使用 CVS 的特性,并且保留相 同的开发模型 ,但是避开 CVS 的那些明显的缺陷 。 • Subversion 于 2001 年 8 月进入“自测”阶段 。

Subversion 的特色 •

目录控制 – CVS 只能跟踪单个文件的历史,而 Subversion 实 现了一个 " 虚拟 " 的受控文件系统,可以跟踪整个目 录的变更。

• 真正的版本历史 – 由于 CVS 只限于记录文件的版本信息,像文件复 制、重命名这样的操作它就不支持 ,在 Subversion 中我们可以添加、删除、复制和重命名文件和目录 。

Subversion 的特色 • 原子化提交 – 一个变更集要么完整地被提交到仓库中,要么不做 任何改变 ,从而避免发生不完整地提交变更的情况 。

• 受控元数据 – 每一个文件和目录都有一个与其对应的属性集 。

• 可选的网络层 – Subversion 仓库的存取是一个抽象概念,有利于其 他人实现新的网络访问机制 , Subversion 可以作为 一个外部模块插入到 Apache HTTP 服务器中 。

Subversion 的特色 • 一致的数据处理 – Subversion 使用一种二进制的比较算法来表示文件 之间的区别 。

• 高效的分支和标记 – 分支和标记所带来的开销与项目的规模并没有直接 的关系 , Subversion 在创建分支和标记时使用类似 “连接”的方式来复制项目 。

• 扩展能力 – 它是由一组设计良好的 APIs 实现的,包含在 C 的 共享库中 ,这使得它很容易维护。也很容易被其他 应用程序或语言使用 。

Subversion 的体系结构

Subversion 的体系结构 • 典型的 client/server 模式结构 • 在系统的一端是存放着所有受控制数据的 Subversion 仓库。 • 另一端是 Subversion 的客户端程序,管理着受控数据 的一部分在本地的映射(称为“工作副本”)。 • 在这两端之间,是通过各种仓库存取层( Repository Access,RA )的多条通道。这些通道中,有些要使用计 算机网络,再通过用来访问 Subversion 仓库的服务器。 而有些则完全绕过了网络,直接对仓库进行操作 。

Subversion 的安装 • Subversion 是建立在一个叫做 APR ( the Apache Portable Runtime library )的可移植运行库之上的 。 • Subversion 可以运行在任何 Apache 服务器可以运行 的操作系统之上: Windows 、 Linux ,各种类型的 BSD 、 Mac OS X , Netware 以及其他的系统。 • 获得 Subversion 的最简单的方法就是下载适合于你的 操作系统的二进制软件包 • Subversion 的站点( http://subversion.tigris.org ) • Windows 安装是图形化界面, linux 安装较复杂,另有 讨论。

Subversion 的组件 • Svn – 一个命令行的客户端程序

• Svnversion – 报告本地工作副本状态(当前档案的修订版本号表 示)的程序

• Svnadmin – 用来创建或者是修复仓库的工具

• svndumpfilter – 过滤资源库程序

Subversion 的组件 • mod_dav_svn – Apache 服务器的一个插件模块,用来使其他人可以 通过网络访问这个仓库

• svnserve – 一个定制的、独立的 Subversion 服务程序。可作为 一个驻留进程运行或者是由 SSH 调用。是使仓库可 以被别人通过网络访问的另一种方法

• 常用的组件是 svn 和 svnadmin ,有图形化客户端 来实现 svn 和 svnadmin 功能。

Subversion 快速入门 • 运行下面的例子,必须确保 svn 和 svnadmin 这两 个工具正常运行。 • 同时还必须保证你的 svn 工具是针对 Berkeley DB 编译的 。 • 可以运行 svn --version 然后检查 ra_local 模块 是否可用来确认 ,如果没有这个模块,我们的 客户端程序将无法访问 file://URLs

Subversion 快速入门

Subversion 快速入门 • $ svnadmin create /path/to/repos • ls /path/to/repos – conf/ dav/ db/ format hooks/ locks/ README.txt



这个命令创建了一个包含 Subversion 仓库的目 录 /path/to/repos 。另外,这个目录必须创建在 本地磁盘,而不能是在网络共享磁盘上

• 下一步,准备一个类似下面例子中的用来导入的 文件、目录树。在树结构中,应该包含三个顶层 目录: branches 、 tags 和 trunk

Subversion 快速入门 /tmp/project/branches/ /tmp/project/tags/ /tmp/project/trunk/ foo.c bar.c Makefile ...

Subversion 快速入门 • 一旦你准备好了目录树,就可以使用 svn import 命令 来导入数据到仓库中了 •

svn import /tmp/project file:///path/to/repos -m "initial import" Adding /tmp/project/branches Adding /tmp/project/tags Adding /tmp/project/trunk Adding /tmp/project/trunk/foo.c Adding /tmp/project/trunk/bar.c Adding /tmp/project/trunk/Makefile ... Committed revision 1.

Subversion 快速入门 • 现在,仓库中就有了整个目录树中的数据 • 为了开始操作仓库中的数据,我们需要先创建一个 数据的“工作副本( working copy )”出来 。 • 这类似于一种私有的工作区 ,向 Subversion “check out” (借出)一份仓库中 trunk 目录的工作副本 : – $ svn checkout file:///path/to/repos/trunk project

• 在一个新的 project 目录下就有了仓库中一部分数 据的一个私人副本 ,可以在本地工作副本上编辑某 个文件,然后再将那些修改提交到仓库中 。

二、版本控制的基本知识 • 仓库( The Repository ) • 版本控制模型 • 实际工作中的 subversion • subversion/cvs/vss 比较

仓库( The Repository ) • Subversion 是一个集中式的系统。它的核心是一 个用来存放数据的中心仓库。中心仓库使用典型 的文件和目录层次结构――树状结构来存储信息 。 • 许许多多的客户端可以连接到中心仓库,然后读 取或者写入文件 。 • 客户端通过写文件来使其他人共享,也可以读取 其它客户端所写入的文件。 • 典型的客户端 / 服务器系统模型 ,如图所示:

仓库( The Repository )

仓库( The Repository ) • 仓库就是一种文件服务器,只是不是通常的那种 。 • Subversion 仓库可以记录写入仓库的每一次更改 。 – 这些更改包括对每一个文件的每一次修改,甚至是对目录本身 的修改,例如添加文件、删除文件和对文件和目录的重新编排。 这些特性使得 Subversion 仓库与一般的文件服务器相比较为 特殊。

• 客户端同样可以读取文件和目录以前某个时刻的状态 。 • 版本控制系统的核心:记录和跟踪数据的修改历史 。

版本控制模型 •

版本控制系统的核心任务是使得数据可以协作 处理和共享。但是不同的系统使用不同的策略来 达到这个目标 。

• 文件共享的问题 。 • “ 锁定―修改―解锁” 方案 • " 复制―修改―合并 " 方案

文件共享问题  所有的版本控制系统都必须解决一个共同的基本 问题:如何让用户来共享信息,并且还要避免他 们不小心覆盖掉别人对仓库中数据作过的修改?

" 锁定―修改―解锁 " 方 案

• 许多版本控制系统都使用“锁定―修改―解锁”模 型来解决这个问题 ,诸如: VSS • 在这样一个系统中,仓库在一个特定的时刻只允 许一个人对某个文件进行修改 。

" 锁定―修改―解锁 " 方 案 • 这种方案的问题是它有一点过于严格了,经常会 阻塞用户的使用 。 • 锁定可能会带来管理问题 。 • 锁定可能导致不必要的串行工作 。 • 锁定可能会引起潜在的不安全性 。

" 复制―修改―合并 " 方案 • Subversion 、 CVS 以及其他一些版本控制系统使用“复 制―修改―合并”模型来代替锁定 。 • 每一个用户的客户端软件从中央仓库创建出一份个人的 工作副本――仓库中文件和目录的本地映射 。 • 用户就可以并行工作,修改手中的私有副本 。 • 这些私有副本合并成为一个全新的版本 。 • 版本控制系统常常需要合并,但是最终,操作者本身必 须负责让合并工作正确进行 。

" 复制―修改―合并 " 方案

冲突( conflict ) • 如果 Sally 的修改会覆盖掉 Harry 的工作怎么 办?这种情况叫做 " 冲突( conflict ) • 当 Harry 要求他的客户端软件合并仓库中的最 新修改到工作副本时,文件 A 被标记为冲突状 态。 •

遇到这种情况,只有人本身才有能力理解和做 出合理的选择 。注意,软件并不能自动解决冲 突。

• 用于解决冲突的时间远远少于锁定系统所带来的 时间浪费。

解决冲突的关键是用户交 流  最终,我们将所有的问题归结为一个关键因素: 用户交流。如果用户很少交流,不论是语法的还 是语义的冲突都会增加。没有哪个系统可以让用 户完美地交流,也没有哪个系统可以自动检查出 语义上的冲突。所以,不要被那种锁定系统可以 解决冲突的虚假承诺所麻痹,事实上,锁定系统 除了限制生产力之外一无是处。

实际中的 Subversion • 工作副本 Working Copies • 资源库存储的不同方式 URLs • 修订本 • 工作副本如何跟踪仓库 • 混合型修订版的局限性

工作副本 Working Copies •

一个 Subversion 的工作副本其实就是本地系统 中的一个普通的文件目录树 。

• 可以使用任何方式来编辑这些文件。如果是源代 码文件的话,你也可以像通常情况那样去编译它 们。 • 工作副本是你的私人工作区 。 • 如果你不明确的要求, Subversion 绝不会合并其 他人的修改,也不会让其他人看到你做的修改 。

工作副本 Working Copies

• 在你已经修改完工作副本中的文件,并且确信修改正确后 ,就可以将这些修改公开给同一个项目中的其他工作人员。 Subversion 提供了将文件写入仓库的命令 。 • 工作副本中也包含一些额外的文件。它们是由 Subversion 创建和维护的,用来辅助完成这些命令。 • 最典型的情况是,每一个目录都包含一个叫做 .svn 的子 目录 。该目录也被称为“工作副本管理目录”。 • 一个 Subversion 的仓库会包含几个项目,而每一个项目 都是仓库的目录的一个子目录。这样,用户的工作副本也 就对应于仓库中一个特定的子目录。

工作副本 Working Copies

资源库存储的不同方式 URLs 样式 file:///

存取方式 直接从本地磁盘上访问仓库

http:// 通过 WebDAV 协议访问 Apache 服务器,而访问 仓库 https://

和 http:// 相同,但使用 SSL 来作加密

svn://

通过自定义的协议访问一个 svnserve 服务器

svn+ssh://

和 svn:// 相同,但通过一个 SSH 通道来使用

修订本 •

一个 svn commit 操作可以将任意数量的文件和目录的修 改发布作为一个单独的原子事务来处理 。

• 在仓库中,每一次提交都被作为一个原子事务来对待 。 • 每当仓库接受一次提交,仓库中的文件系统目录都会创建一 种新的状态,叫做一个修订本。 • 每一个修订本都被赋予一个唯一的自然数,并且每一个修订 本的数字都比前一个要大。刚刚建立的仓库的初始的版本是 0 ,只包含一个空的根目录。 •

Subversion 的修订版编号是针对整个目录树的,而不是某 一个独立的文件 。

修订本 •如图所示:

设想一个修订版编号的数列,从 0 开始,从左延伸到右。每 一个修订版编号都对应一个画下面的目录树,而每一个目录 树就是在每一次提交之后的仓库的 " 快照 " 。

混合型修订版 • 一般的原则上, Subversion 努力使自己尽可能的 灵活。一个典型的灵活性的体现就是允许工作副本 中包含有混合的修订版编号的能力。 • 在完成向仓库的提交之后,刚刚提交的文件和目录 就拥有了最新的修订版编号,而其他文件没有。

混合型修订版的局限性 • 第一,在你没有对文件或目录完全更新之前,你无 法提交对他们的删除操作 。 • 第二,在还没有完全更新之前,你将无法提交一个 对目录元数据修改的操作 。

subversion/cvs/vss 比较 svn

cvs

vss

工作模式

Copy-Modify-Merge

Copy-Modify-Merge

Lock-Modify-Unlock

粒度

目录级

文件级

文件级

本地文件、专有服务器

本地文件

访问存储库方 本地文件、专有服务 器、 webdav 式 访问授权

基于 apache 目录授权



专有管理工具

分支和标记

支持,高效实现

支持

不支持

使用方式

多种专有工具、 IDE 集成、命 多种专有工具、 IDE 集成 专用工具,使用方便 令行 、命令行

分支、标记处 高效实现,相同文件在实现时 不同分支、标记中相同文 无分支、标记概念 通过链接实现,不占用额外空 件需占不同空间 理 间

三、 Subversion 之 旅 • 基本术语 • 主要讲解 SVN 客户端工具的常用命令 • 通过本部分的学习,可以操作所有任务在日常 使用 subversion 版本控制系统

术语 • 修订版( revision ) – 存储库接受的每一次修改产生新的修订版 – HEAD :存储库中最新版本 – BASE :

• 分支( branches ) • 标记( tags ) • 合并( merging )

Subversion 客户端工具 • 命令行工具 – 通过命令行方式,主要命令包括: • svn :基本 svn 命令 • svnadmin :存储库管理 • svnlook :存储库查看

• TortoiseSVN – 与 windows 资源管理器集成

• subclipse – 与 eclipse 集成

Subversion 常用操作 • import - 将本地目录导入存储库 • Checkout - 从存储库创建目录树的本地工作拷贝 • update - 将存储库中文件同步到本地工作拷贝中 • commit - 本地工作拷贝中文件修改提交到存储库中 • add - 将本地文件加入到存储库中 • remove - 从存储库中删除一个文件 ( 保留历史记录 ). • move - 在存储库中讲一个文件移到另一个位置

Subversion 推荐目录结构 • 存储库 – 项目名 • trunk :主版本 • branches :分支版本(独立版本) • tags :标记版本,比如发行版 v 1.0/ v 2.0 等等

工作拷贝、存储库同步的状态 commit

update

工作拷贝

存储库

未修改

未修改

未修改

已修改

已修改

未修改

将本地修改提交 到存储库中

已修改

已修改

出现过期错,要 将存储库的修改 首先 update 合并到工作拷贝 中

从存储库中取出 最新版本

Svn 常用命令介绍 • Help • Import • Checkout • Update your working copy – Svn update

• Make changes – add – delete – copy – move

Svn 常用命令介绍 • Examine your changes – status – diff – revert

• Merge others’ changes – Merge – Resolved

• Commit your changes – commit

help •

C:\>svn help



用法: svn <subcommand> [options] [args]

请使用 “ svn help <subcommand>” 显示子命令的辅助说明。 大多数的子命令可接受文件或目录参数,对目录进行递回存取。 如无指定参数给命令,默认将会自当前的目录 ( 包含 ) 进行递归存取

import •

import: 提交未纳入版本控制的文件或目录树至档案库



用法: import [PATH] URL



递归地提交 PATH 的拷贝至地址 (URL) 。如果省略 PATH ,默认为 ‘ .’ 。父目录会依需要于档案库内建立。



举例: D:\>svn import -m "import directory" --username lsr --password lsr ./monitor

https://localhost/svn/reposs

checkout •

checkout (co): 从档案库签出工作拷贝



用法: checkout 地址 ... [ 路径 ]



例如: D:\gg>svn co https://localhost/svn/reposs

update •

将档案库的改变反应至工作拷贝



用法: update [PATH...]



例如: D:\private\publish\ 个人信息 >svn update 于修订版 48 。

Make changes •

Add : –



Delete –



拷贝文件,然后 commit

Move –



删除在库中的文件或者目录,然后 commit 。

Copy –



增加文件或者目录到资源库中,然后 commit 。条件是该 文件或者目录已经在相应的目录上。

移动文件或目录到另外目录中,相当于拷贝、删除的组合。

以上的命令是针对工作副本进行的,所以要 commit 才有效

Examine your changes •

Status –

显示工作拷贝目录与文件的状态 。



用法: status [PATH...]



svn status wc M

wc/bar.c

A + wc/qax.c •



Diff –

diff (di): 显示两个路径中的差异



D:\repos\webtest\trunk>svn diff -r 19:25 Project.java

Revert –

恢复原始未改变的工作拷贝文件 ( 恢复大部份的本地修改 )

Merge others’ changes •

Merge – 将两个来源之间的差异应用至工作拷贝路径



Resolved – 移除工作拷贝的目录或文件的 ' 冲突 ' 状态

Commit your changes •

Commit – commit (ci): 把改变从工作拷贝发送到档案库。 – 用法: commit [ 路径 ...] – 日志信息必须提供,但可以是空的 – D:\fff>svn commit -m "lishure"

正在发送

hh.txt

传输文件数据 . 提交后的修订版为 14 。

Other userful commands •

Cleanup



List



Cat



Log



mkdir

四、客户端工具 tortoiseSVN



tortoiseSVN 介绍



tortoiseSVN 的使用

tortoiseSVN 介绍 •

Windows 操作系统客户机



图形化界面,集成了 svn 和 svnadmin 命令行工 具的功能。



该客户机集成于资源管理器功能中,使用方便,易 于掌握。



直接安装 TortoiseSVN-1.1.1-UNICODE_svn1.1.1.msi ,方法同一般软件安装相同

tortoiseSVN 使用介绍 一旦该客户机安装成功,在指定目录单击右键 ,弹出菜单中,增加了几项,如图所示:

tortoiseSVN 使用介绍 •

如上图所示,在资源管理器菜单中增加了, svn checkout 命令菜单和其他命令,诸如:浏览指定的资源库、创建资源库 、从资源库中导出资源、从指定目录中导入到资源库中。



还有一些有关设置 tortoisesvn 工具的参数。



如果指定的目录已经被纳入到特定的资源库中,那弹出的菜单 参数更多,如目录 private 已经被 subversion 管理了,它就 是一个工作副本,如下图所示:

tortoiseSVN 使用介绍

tortoiseSVN 介绍 •

如上图所示,弹出菜单中含有更多的 svn 命令 – Update – Commit



含有 svn 的所有命令,但是操作比 svn 命令行 方式方便多了。



通过该客户机可以很快掌握 svn 命令,同时很 好的对自己所属的工作拷贝进行管理

插件 subeclipse 使用 •

subclipse_0.9.3.1 适合 eclipse2.0 使用



site.0.9.28 适合 eclipse3.0 使用



重点介绍 site.0.9.28 插件的安装和使用

subclipse_0.9.3.1 •

该插件适合 eclipse2.0 版本,下载网站是:



http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID =1730,选择最新版本 Sublipse 0.9.3.1.zip 。



我们开发部网站也有该插件,最新版本的



下载 Sublipse 0.9.3.1.zip



解压到 eclipse 安装目录的父亲级目录 ,例如,如果你的 eclipse 安装在 c:\eclipse ,那么解压到 c:\ 。或者把解压 后的 eclipse 目录与 eclipse 安装目录覆盖也可以

site.0.9.28 安装步骤 •

该插件适合 eclipse3.0 版本。下载网站与 2.0 一样,只是下载的版本不用,选择最新版 site.0.9.28.zip 。需要注意的是,二者安装 有所不同,前者是直接解压到适合目录就安装 成功,后者是利用 eclipse 提供的软件更新工 具



开发部网站上有最新版本的可下载。



下载一个压缩文件,诸如 site.0.9.28.zip , 解压到本地一个目录里 。

site.0.9.28 安装步骤 •

解压后的目录结构如下所示:

site.0.9.28 安装步骤 •

启动 eclipse3.0 ,选择 Help -> Software Updates -> Find and Install ,中文界面的是: 帮助 -> 软件更新 -> 查找并安装。



选择“ Search for new features to install” and click Next ,中文界面的是:搜索要安装的新 功能部件,点击“下一步” 。



点击 “ New Local Site” ,中文界面的是:新建 本地站点 。



查找下载插件所在的路径,并选择 <parent folder>/update and click OK

site.0.9.28 安装步骤 •

你将能看见该你的站点,选择它并点击下一步 ,如图所示 :

•按照向导,并重新启动 eclipse ,即完成了安装

Subeclipse 的使用 •

安装完成后。重新启动 eclipse 后,打开窗口 > 打开透视图,其他,如图所示

Subeclipse 的使用 •

如上图所示,透视图里多了 SVNRepository 透视图, 选中该透视图,点击“确定”按钮,进入 svn 透视图, 该透视图由以下视图组成,如图所示 :

Subeclipse 的使用 •

视图包括: SVN Repository 、 SVN Resource History 、 SVN Properties 、 SVN Annotate 、 pendling SVN Operations 。其中 SVN Repository 视图是最主要的,也是通过该视图 进行新建连接 repository 库和操作 repository 库 、等操作。其余视图都是围绕该视图展开。

Subeclipse 的使用 •

新建 repository 连接,在 SVN Repository 视图中 单击右键,按出菜单,然后新建 repository 连接 ,如图所示 :

Subeclipse 的使用 •

点击增加 repository 后,添加一个新的 SVN Repository 库到 SVN Repositories 视图,这里需要说明 的, repository 库必须首先建立后,用 svnadmin 工具建 repository 库。如图所示 :

Subeclipse 的使用 •

url 是 repository 库所在地方, url 可以是: file:/// 、 svn:// 、 http:// 和 https:// 这样几种方 式。在这里是 https 方 式, https://localhost/svn/MyNewRepository , 在 svn 虚拟路径下有一个名叫 repository 的 sub 版本库。



由于采用 apache 认证方式,需要帐号和密码。 如果帐号认证正确,即可连接该 sub 库 。

Subeclipse 的使用 •如图所示:

资源库 repository 的操作 •

如上图所示,你可以打开相应得文件进行察看 ,诸如: txt 、 java 等源文件,但是不能对该 文件进行编辑,因为他是只读的,这些文件都 是在服务器端的,只有把这些文件 checkout 本 地的 working copy 后才可以自由操作该项目中 的文件。



点击右键版本库中的具体文件,弹出菜单,如 图所示 :

资源库 repository 的操作

资源库 repository 的操作 •通过弹出菜单可以对该文件进行复制、删除、打开 、移动和重命名等操作。一旦在 SVN Repositories 视 图中有操作,那么在版本历史视图中可以察看到版本 号的变化和相应得操作。 •点击右键一个库中的路径,弹出菜单,可以从资源 库中导出项目到工作拷贝中,如图所示

资源库 repository 的操作

六、使用 svn 中常见问题 •

Working copy 工作区与一般目录的混淆



本地版本管理与服务器版本管理



更新和提交( COMMIT UPDATE )



命令行客户端与 GUI 以 IDE 插件 之间的关系



合并和冲突



标签 TAGS 和 分支 BRANCHES TRUNK



解决冲突的方法

七、 csdb 版本管理规则 •

1 、项目负责人和版本管理员负责架构项目目 录结构,包括配置文件、第三方 JAR 文档



2 、项目负责人分配开发人员目录权限,由版 本管理员负责实施 ,权限分配粒度要细



3 、 trunk ,tags ,branches , 项目负责人、 协同版本管理员构建 tags 和 branches



4 、版本管理员负责解决开发人员在开发过程 中的有关版本问题

七、 csdb 版本管理规则 •

5 、开发人员每次修改,或者新增、删除、拷 贝工作区对象后,应该立刻提交到版本库,有 效保持工作区与资源库的高度一致 ,每天下 班之前提交、(更新)



6 、开发人员在每次修改工作区中代码或者文 档时,首先更新该对象,可以尽量减少冲突、 合并



7 、保证提交到的版本库的代码没有 BUG 以 免影响开发组 ,可以适当利用加锁机制,减 少冲突

七、 csdb 版本管理规则 •

8 、项目负责人和版本管理员负责软件的测试 版,构建测试环境 , branches 由版本管理 员进行 ( checkout )



9 、项目负责人和版本管理员负责发布软件的 发布版,与系统部协调构建发布环境 (export)



10 、版本管理员负责清理有关不需要的 branches ,tags

总结 •

subversion



版本控制系统



日常工作常用 svn 命令介绍



图形化客户端 tortoiseSVN 介绍



Subeclipse 插件的安装和使用

Related Documents

Subversion Fox
May 2020 15
Subversion
April 2020 18
Fox
June 2020 22
Fox
May 2020 25
Subversion Handbook
December 2019 6
Subversion Tutorial
May 2020 5

More Documents from ""

Subversion Fox
May 2020 15
May 2020 6
Growing Up In Thev2
November 2019 21
May 2020 1
May 2020 15