我对集市(主要用于cvs,然后是颠覆,以及在我目前的工作中我们使用SourceUnsafe)相对来说比较陌生。我现在的开发环境的结构是这样的:现在在分布式版本控制系统(bazaar)中开发一个库
\dev (shared repository) \trunk \project1 (branch) \project2 (branch) \branches \proj1-bugfix123 (branch of \trunk\project1) \proj1-featureA (branch of \trunk\project1)
,如果我决定PROJECT1的某些方面会更适合作为一个库(或组装的,因为它是一个C#项目),而不是项目中的类,什么是构建这个市场的最佳途径。我想出了两种可能性,我认为是可行的。第一个我认为是“正确”的方式。
\dev (shared repository) \trunk \project1 (branch) \project2 (branch) \libXXX \branches \proj1-bugfix123 \main (branch of \trunk\project1) \libXXX (branch of \trunk\libXXX) \proj1-featureA \main (branch of \trunk\project1) \libXXX (branch of \trunk\libXXX)
这样做的问题是,现在我需要记住更新解决方案文件,包括合适的项目,每当我做一个分支,不推,早,并还记得更改推回两项目和库在同一时间(例如,如果project1中的featureA需要更改libXXX才能工作)。
\dev (shared repository) \trunk \project1 (branch) \project2 (branch) \libXXX \branches \proj1-bugfix123 (branch of \trunk\project1) \libXXX \proj1-featureA (branch of \trunk\project1) \libXXX
这种方法的问题在于,如果另外一个项目,说是project3想用libXXX并且在源头控制,这将需要关闭PROJECT1的一个分支,与删除PROJECT1文件。这将是混乱。
我想有一个第三个选项,就是在颠覆中整个树干是一个分支,但这似乎与我认为它们应该在集市中工作的方式相反。
如果这是在SourceSafe中完成的,我只是不喜欢它的第二个例子,但在这两个地方的libxxx文件夹,但是共享的,因为这是唯一的机制SourceSafe中必须做进去。
好吧,库会有自己的解决方案,但是在project1中,它将具有UI的.csproj和库的.csproj。问题出在哪里。 – FryGuy 2008-12-11 01:57:27