开发者“沙箱”是每位开发者存放其代码库工作副本的地方。在 CVS 中,这被称为工作目录。开发者在这里构建、测试和调试他们正在开发的模块。“沙箱”也可以是进行暂存构建或生产构建的区域。在工作区中所做的更改会被检入到 CVS 仓库中。此外,仓库中其他人所做的更改也必须定期在沙箱中更新。
与开发者沙箱相关的最佳实践包括:
CVS 通过使用文件的时间戳来跟踪源文件的更改。如果每个客户端系统的日期和时间不同步,CVS 很有可能会感到困惑。因此,必须使用中央时间服务器或类似的机制来保持系统时钟同步。
CVS 从一开始就被设计为处理多个时区。只要主机操作系统已正确设置和配置,CVS 就能够正确跟踪更改。
沙箱对于每位开发者或每个目的都必须是唯一的。它们不应同时用于多种用途。沙箱可以是开发者的工作区,也可以是最终版本的构建区。如果共享此类沙箱,则沙箱的所有者将不会意识到对文件所做的更改,从而导致混乱。
在 CVS 中,当使用 cvs checkout {project-name} 命令为 CVS 项目检出工作副本时,沙箱会自动创建。
在非常大型的项目中,开发者检出整个源代码到本地沙箱中是没有意义的。在这种情况下,他们可以定期获取构建团队生成的二进制文件,用于应用程序中所有未被他们更改的组件,并且仅检出由开发者构建的部分。
例如,在 Java 项目中,构建团队可以将他们上次成功构建的结果以 JAR 文件的形式保存在网络文件服务器上的标准位置。各个开发者将使用标准的类路径设置,该设置将网络驱动器挂载在标准路径上。因此,开发者将自动获得他们需要的最新版本的文件。
沙箱可以被认为是 CVS 可以在其中跟踪对各种源文件所做更改的受控区域。属于其他开发者的文件将由 CVS 在开发者沙箱中自动更新。因此,在沙箱中工作的开发者将获得并发开发的许多好处。