0

假设我有一个文件 //depot/Project/com/company/project/SomeClass.java 标有名称“version-1.0.0”。突然我需要恢复到那个标签来创建一个错误修复版本。我对其进行更新,然后对 SomeClass.java 进行更改。

现在这是我不明白的部分。如何在不覆盖任何更新版本的源代码树的情况下将固定的 SomeClass.java 提交给 Perforce?使用 Mercurial 或 Git,我将拥有一个具有固定源代码的分支,并且我会从那里创建错误修复版本。但现在我不知道应该把固定文件放在哪里。

4

1 回答 1

1

您在 Perforce 中的选择与在其他系统中的选择基本相同,尽管术语有些不同。

简单的解决方案是对 SomeClass.java 进行更改,然后创建一个名为“version-1.0.1”的新标签,它标记 SomeClass.java 的新版本而不是旧版本,但在其他方面与版本 1.0.1 标签:

p4 sync //...@version-1.0.0
p4 edit SomeClass.java
p4 submit -d Fixed_that_nasty_bug
p4 label version-1.0.1
p4 labelsync -l version-1.0.1

或者,您也可以在 Perforce 中创建一个分支,并且您可以使用您的标签作为创建该分支的基础。

因此,您可以执行以下操作:

p4 integrate //depot/Project/...@version-1.0.0 //depot/rel-1.0.1/Project/...

然后您可以对 //depot/rel-1.0.1/Project/.../SomeClass.java 进行更改,并将其提交回 rel-1.0.1 分支。

如果这是您第一次考虑开发分支、发布分支等,我建议您阅读http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf或拿起一份 Laura Wingerd 的Practical Perforce并阅读“主线模型”一章?

于 2013-08-16T18:00:26.483 回答