Posted on 2011-01-05 20:25
点点滴滴 阅读(753)
评论(0) 编辑 收藏 引用 所属分类:
02 编程语言 、
03 编程工具
外部定义
有时候创建一个由多个不同检出得到的工作拷贝是非常有用的,举个例子,你或许希望不同的子目录来自不同的版本库位置,或者是不同的 版本库。你可以手工设置这样一个工作拷贝—使用svn checkout来创建这种你需要的嵌套的工作拷贝结构。但是如果这个结构对所有的用户是很重要的,每个用户需要执行同样的检出操作。
很幸运,Subversion提供了外部定义的支持,一个外部定义是一个本地路经到URL的影射—也有可能一个特定的修订版本—一些版 本化的资源。在Subversion你可以使用svn:externals属性来定义外部定义,你可以用svn propset或svn propedit(见“为什么需要属性?”一节)创建和修改这个属性。它可以设置到任何版本化的路经,它的值是一个多行的子目录和完全有效的 Subversion版本库URL的列表(相对于设置属性的版本化目录)。
$ svn propget svn:externals calc
third-party/sounds http://sounds.red-bean.com/repos
third-party/skins http://skins.red-bean.com/repositories/skinproj
third-party/skins/toolkit -r21 http://svn.red-bean.com/repos/skin-maker
svn:externals的方便之处是这个属性设置到版本化的路径后,任何人可以从那个目录取出一个工作拷贝,同样得到外部定义的好处。换句话 说,一旦一个人努力来定义这些嵌套的工作拷贝检出,其他任何人不需要再麻烦了—Subversion会在原先的工作拷贝检出之后,也会检出外部工作拷贝。
案例:
Client属性设置:
Cache https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Cache
CommonData https://cx-0715-1592/svn/WS/trunk/RunPath/Client/CommonData
Data https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Data
Dream https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Dream
Interface https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Interface
Logs https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Logs
Media https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Media
OgreHead https://cx-0715-1592/svn/WS/trunk/RunPath/Client/OgreHead
Patch https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Patch
Screenshots https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Screenshots
Bin属性设置(因为bin目录中有些目录和文件不想要):
cg.dll https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Bin/cg.dll
USkin.dll https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Bin/USkin.dll
mfc90.dll https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Bin/mfc90.dll
fmodex.dll https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Bin/fmodex.dll
lua5.1.dll https://cx-0715-1592/svn/WS/trunk/RunPath/Client/Bin/lua5.1.dll