这是对此答案的跟进问题:https://stackoverflow.com/a/9579131/1204799
“最好创建基于根目录的组件”
如果我有多个独立应用程序(这意味着它们的开发和部署是独立的),我不应该创建不同的VOB来容纳它们吗?我现在正在做的是,我有一个单独的PVob,其中包含一些UCM项目,每个UCM项目都有自己的Vob和基线组件(没有Vob的组件)。我这样做是错误的吗?
于3月7日16:29更新
在接受你的建议之后,这就是我现在要做的事情:
我的问题出现了: 现在有几个应用程序共享同一个VOB,我怎样才能更好地管理基线,以便它们按应用程序组织?即防止意外选择另一个项目的基线
答案 0 :(得分:0)
最好在(通常)命名的Vob中使用多个组件。
每个Vob创建一个组件并不是“错误的”,但是你需要知道,一旦为一个组件分配了一个根目录(如Vob),你就不能再改变那个根,或者进行任何重构。
通过“重构”,我提到了经典案例,其中我创建了一个组件“MyProject
”(其Vob'\MyProject
'...然后才意识到,例如,几个月之后'MyProject
'实际上有一个服务器和一个客户端模块可以从单独的历史中受益:我应该定义两个组件而不是一个。
使用“每个组件一个vob”模型,我没有别的选择来创建另一个Vob:我无法重构,即我无法在现有组件中创建子目录,并在那里定义第二个组件。
使用“每个Vob的多个组件”,我可以:
MyProject_Server
”,其根目录为“\MyVob\myproject
”(保持不变:创建后无法更改组件的根目录),MyProject_Client
”,根目录为“\MyVob\myproject_client
”。 主要优势是比例:您可以在Vob中定义多个(数百个)组件。
但是你不应该定义数百个Vobs,因为管理对所述Vobs的访问需要大量的进程(vobrpc_server
和vob_server
)。
如果您为每个Vob创建多个组件,则不会对每个项目UCM的基线选择产生任何影响 也就是说,你选择错误组件基线的风险是多少,无论这些组件是完整的VOB还是Vob的一部分。
您只需在不同的UCM项目中分离这些组件,并管理这些UCM项目中的每个组件基线。