共享项目是处于共享状态并且其成员处于可视、共享或任何静态状态的项目。
当项目处于共享状态时,用户可以在项目中作出更改。此行为不同于处于工作或准备状态的项目,在这些项目中只允许具有特定角色的单个或多个用户在项目中作出更改。
共享项目具有数个优点,这些优点主要与多个用户共享单个项目相关。
但是,提供这些优点的同一组特性还会强加一些限制。您必须了解这些优点和限制,以便能够确定共享项目是否适合于您的团队。
有关本主题中引用的对话框和命令的更多信息,请参阅使用 Rational Synergy 和使用对话框和窗格。
共享项目的优点
使用共享项目有以下优点。
- 节省时间
您不必检出大型项目(或多个项目)的工作版本即可作出较小的更改。除非您正在维护共享项目的工作版本,否则无需执行维护或管理操作。您反而还拥有对项目及其对象的直接访问权。
- 减少培训
因为所有用户都可以共享项目,所以单独用户无需了解如何管理项目,例如,创建、更新、同步和设置属性。一个用户(例如,构建管理员)可以负责管理项目。
- 共享开发能力
其他用户的更改立即可用。例如,如果 Bob 和 Ann 正在同一共享项目中工作,那么 Bob 的更改在保存之后将可供 Ann 使用。
- 所需磁盘空间更少
因为所有用户都在使用单个项目,所以不需要此项目的工作区的多个副本。此特性可节省磁盘空间。
但是,请考虑如果您使用基于链接的工作区(对于 UNIX)或者您的团队在工作区中只有很少的非受控文件,那么节省的磁盘空间量将极小。
共享项目的限制
共享项目强加以下限制。
- 无隔离
无隔离是共享项目的最重大的限制。可能会发生几种让您可能遇到意外行为的情况,尤其是在构建产品时。
在共享项目中进行构建可产生并行构建的效果。用户可以随时构建共享的产品,并且新产品会自动配置到共享项目中。因此,构建结果可能会在没有通知的情况下发生更改。例如,如果一个用户更改了共享项目中的库,那么此更改会立即被包含。此更改可能会影响其他用户的后续构建。
对共享文件的不完整更改可能会导致不可预测的结果。这些文件在进行处理时是项目的成员,即使它们尚未进行调试也如此。
最后,共享工作区中的非受控文件可能会影响构建结果。例如,非受控的可重定位对象文件可能由不同用户同时访问或者按照会损坏这些文件或更改构建结果的顺序来访问。
警告:
为您提供对更改的直接访问权的同一特性还会带来(立即而无通知)不兼容的更改(来自其他用户)、不完整的更改或者错误。
如果您需要隔离的项目,那么可以检出此项目的工作版本并在该版本中工作。有关更多信息,请参阅并行开发和共享项目。
- 有限的文件系统安全性
Rational Synergy 不完全支持针对共享项目基于副本的工作区的文件许可权。所有用户都拥有在基于副本的工作区中重命名、移动或删除文件的许可权。此外,他们还可能可以更改已检出至其他用户的对象的文件。
在基于副本的工作区中,对工作区文件的更改不影响 Rational Synergy
数据库中的受控文件。但是,您必须注意避免将不需要的更改从工作区同步回数据库中。
Windows 用户可以通过将非共享驱动器用于其工作区来阻止对工作区的不需要的更改。但是,此方法会阻止多个用户共享工作区。
UNIX 用户可以通过使其工作区基于链接来阻止对工作区的不需要的更改。其他用户可以更改文件的链接,但只有文件的所有者才可以更改文件本身。
- 禁止并行开发
共享项目中禁止并行开发。在对象已从共享项目中检出后,其他任何人都不能将其检出。
您不得使用其他版本(通过 ccm use 命令或使用对话框)并从此版本检出。您可能会除去其他用户的更改。
请改为从共享项目检出工作项目并处理并行版本。
- 需要公共工作区路径
共享项目的工作区必须设置到可供所有用户使用的路径。此路径必须对于所有机器都相同。因为所有用户必须从许多不同的机器访问同一工作区,所以更多的网络流量可能会降低性能。