PerForce术语中,“Get Latest”和“Check-out”这两个术语有什么区别吗?

13

在使用SVN时,我主要使用Commit和Get Latest,现在我正在尝试适应Perforce。

但是在Perforce中,我有点困惑。

在Perforce术语中,“获取最新版本(Get Latest)”和“签出(Check-out)”这两个术语有什么区别呢?

1个回答

25

从“Perforce 基本概念”中:

  • 获取最新版本(p4 sync)是将文件从存储库传输到您的工作区。
  • 检出(p4 edit)是为了 编辑 从存储库获取最新版本。
    当文件被检出用于编辑时,它们的权限设置为读写。当文件未被检出时,Perforce 将其设置为只读。

正如在“Perforce 不正确地同步文件”中所述,刷新(p4 sync)将仅更新未打开(未检出)的文件,即使启用了“强制操作”也是如此(p4 sync -f)。
因此,真正的区别在于“检出”标记文件已被修改,并保护该文件以免受任何刷新(任何“获取最新”操作)的影响。

Mark 评论并修改我刚才提到的“区别”:

如果在对某个文件进行编辑的版本之后运行“获取最新版”(或 sync),那么将会出现需要解决的冲突。
因此,虽然文件不会直接被同步更新,但是 Perforce 将设置冲突以便通过解决来更新该文件(事实上,在提交打开编辑的文件之前必须进行解决)。


1
需要完整性的说明一下,如果你在一个文件上运行“获取最新版本”(或同步),而该文件比你正在编辑的版本更新,那么这将设置一个需要处理的解决冲突。因此,虽然同步不会直接更新文件,但Perforce会设置冲突,以便通过执行解决(实际上,在提交打开编辑的文件之前必须进行解决)来更新文件。 - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接