Fos*_*tah 11 version-control perforce
我正在寻找一些关于在Perforce仓库中创建单个开发分支的方法的优缺点的反馈.如果我理解正确,有两种方法可以解决这个问题.第一种是创建一个Private分支,它是您正在处理的分支的完整副本.分支将完全独立,并完全隔离您的更改与目标分支.
我听过的另一种方法是Sparse分支.它在Practical Perforce中有描述(第9章,第242页).这将创建一个分支,但仅限于您需要编辑的文件.然后,您将目标分支客户端视图与此稀疏开发分支客户端视图重叠.
这两种方法都需要程序员执行一些集成工作,以便在目标分支中进行更改.Private Branch方法似乎需要更多额外的内存才能创建整个分支的副本.但是,Perforce文档声明它在这种情况下执行"惰性副本".
集成还使Perforce能够执行文件的"惰性复制".分支文件时,服务器实际上并不包含两个文件副本 - 它只保存源文件,数据库中的指针记录了发生目标文件分支的事实.懒惰副本使分支成为低开销操作; 服务器不必跟踪文件的重复副本.
这使得看起来Sparse分支方法只是向进程添加了人为错误的可能性,例如,开发人员可能开始处理他们没有添加到Sparse分支的文件,然后意外地将更改更新为打破构建的目标分支.但是,稀疏分支功能存在是有原因的.任何关于它为什么存在以及为什么我应该在一个完整的私有分支上使用它(或反之亦然)的反馈将不胜感激.
正如您从文档空间中指出的那样,这并不是真正的问题。速度虽然。同步整个开发树可能需要很长时间。整合回来也需要一段时间。如果您只需要树的一个分支,那么这两个操作都会快得多。
正如您已经说过的,可能会发生人为错误,但如果您制定分支规范,它可以帮助减轻一些潜在的错误。