perforce提交原子操作的实际方式

问题描述 投票:1回答:1

强制提交是原子的。

这意味着如果更改列表包含3个要检入的文件,并且操作成功检入了前2个文件,但随后出现错误当对第三个文件进行操作时,它可以回滚前两个文件的操作,从而使所有内容恢复到原始状态。

我对此感到敬畏,并给他留下了深刻的印象,并试图寻找它的实际运作方式,但似乎找不到它。

[如果有人能帮助我了解所有这些在后台如何工作的技术细节,将不胜感激。

非常感谢。

submit perforce atomic rollback
1个回答
2
投票

Perforce使用数据库作为事实来源的事实非常简单:

  1. 软件仓库文件被锁定(在数据库中,就像您要运行p4 lock)。
  2. 新修订版内容已上载到软件仓库档案中。
  3. 数据库表被锁定,以进行最后的检查,以确保一切正常。
  4. 将新修订记录记录到数据库中,并释放所有锁。

如果提交在第2部分中某处失败,则无需回滚任何操作,因为新的修订内容不会覆盖任何内容,并且直到第4步,它们都不会成为文件历史记录的一部分。(不幸的副作用这是因为Perforce实际上可以在失败的提交上“泄漏”磁盘空间,但是与预期的磁盘使用量随时间的正常增加相比,这通常是很小的。)

[如果您希望能够实时观察到这种情况,尾随日志(P4JOURNAL)将显示数据库写入,而尾随日志(P4LOG)将向您显示个人从用户启动操作到更改完全提交为止的提交操作的各个阶段。

© www.soinside.com 2019 - 2024. All rights reserved.