svn的外部定义在项目中的应用

来源:互联网 发布:韩国网络短剧迷你剧 编辑:程序博客网 时间:2024/05/23 15:47

Q1:当前工作拷贝需要引进另外一个版本库的内容,如何保证一个checkout就可以获得所有的内容(当前版本库+另外的版本库)

       此问题在实际中经常遇到

Q2:一个特大的项目,trunk上需要挂载n个不同的版本库,每个版本库由不同team维护、开发、提交。对于scm来说,一个team权限

       仅在一个版本库上,scm可以管理整个trunk

 

幸运的是,subverion已经给我们提供了一个很好的工具“外部定义 ”,来方便做项目。

外部定义是一个本地路径到版本库url的一个映射。使用svn:externals来定义外部属性。用svn propset和svn propedit来创建、修改

外部定义的属性。具体来说,外部属性是一个列表,由“子目录和有效的版本库URL”组成。

譬如:

SS_MGWSMPERM  https://svne1.access.nokiasiemensnetworks.com/svnroot/SS_MGWSMPERM/trunk/SS_MGWSMPERM/
SS_MGWTKFILE    https://svne1.access.nokiasiemensnetworks.com/svnroot/SS_MGWTKFILE/trunk/SS_MGWTKFILE/
SS_MGWRKFILE    https://svne1.access.nokiasiemensnetworks.com/svnroot/SS_MGWRKFILE/trunk/SS_MGWRKFILE/

 

所以,换句话说,只要把这些外部版本库“外部定义”到你的父版本库。当你checkout父版本库的时候,不仅父版本库的内容会checkout,这些“外部定义”的版本库的内容也会一并checkout到你的工作目录。

如果这样的外部定义的版本库数量达到一定的级别,譬如对于50个,你就会体会到各中妙处了。

 

譬如:

[xiaocowa@hzling03 atcamgw-main]$ svn co http://svn.example.cn/repos/calc
A  cal
A  cal/makefile

A  cal/readme.txt


Fetching external item into 'cal/third-party/sounds'

A  cal/third-party/sounds/1.txt

A  cal/third-party/sounds/2.txt

A  cal/third-party/sounds/3.txt

Updated external to revision 361.

Fetching external item into 'cal/third-party/skins'

A  cal/third-party/skins/1.ski

A  cal/third-party/skins/2.ski

A  cal/third-party/skins/3.ski

Updated external to revision 5285.

 

 

#1.svn propset svn:externals  -F file -> 2.svn up -> 3.svn commit

其中file中内容:

cal/third-party/sounds    http://sound.bank.cn/repos

cal/third-party/skins        http://skin.bank.cn/repos

 

#svn propget svn:externals .         //路径可以是目录或版本库url

原创粉丝点击