2024年3月31日发(作者:)

文档规则

[本地工作区] :

work copy

,本地工作副本;

[主项目]:引用共用模块的新项目(工程)

最新版本(HEAD revision):版本库里文件或目录的最新版本

SA :SVN服务器的管理员

PRA :单个项目库的管理员,或者是项目负责人

User :普通工作人员

WC :work copy ,本地工作副本

一、 模块化开发中svn的使用

主要介绍模块化开发中公用模块/组件的版本控制,介绍两种方法。其中,

公用模块一般指那些已经完成的、不可修改的、无法编译成dll的、功能较为完

整的代码群。

1.1手工维护公用模块/组件的[本地工作区]

将公用模块(的所需版本)直接 取出ckeckout 到本地,公用模块的[本地

工作区] 可以作为被引用的[主项目] [本地工作区] 的子目录也可以放在其他独

立目录中。[主项目]的提交commit 对公用模块的[本地工作区] 不会发生任何

影响,而且公用模块的[本地工作区] 需要项目团队中的每个成员与[主项目] [本

地工作区] 相对独立的维护(取出ckeckout ),可能会出现不同项目成员之间的

公用模块[本地工作区] 不一致的错误。

1.2 Svn自动维护公用模块/组件的[本地工作区]

需要使用svn:externals 属性,具体操作步骤如下:察看[主项目] [本地工

作区] 的目录属性

添加svn:externals 属性,格式:子目录名称 -r版本号 公用模块的URL。

公用模块取出ckeckout出来的[本地工作区] 必须作为[主项目][本地工作区] 的

子目录,格式中的“子目录名称”就是指公用模块的[本地工作区] 目录名称,

注意不要与[主项目]自身的目录同名。如果需要使用公用模块的特殊版本,需要

设置格式中的“版本号”,注意加上“-r”。设定好svn:externals 属性后需要进

行提交commit操作。项目团队的其他成员直接更新update即可,能够自动得

到公用模块的[本地工作区]。[主项目]的提交commit 对公用模块的[本地工作区]

不会发生任何影响。如果引用多个模块,只需要在设置该属性值的时候将多个模

块的路径都填写上去即可。

注意:公用模块的[本地工作区] 一般不建议进行修改,即不要直接对公用

模块的[本地工作区] 进行修改、提交commit 操作,建议管理员将公用模块的

svn库的权限设置设定为只读权限。如果公用模块确实需要针对[主项目]进行个

性化修改,这种情况的处理方法在此次讲座的后面将会谈到。