如何提交Perforce中标签中的新版本源文件

时间:2013-08-16 12:04:51

标签: perforce

假设我有一个名为“version-1.0.0”的文件//depot/Project/com/company/project/SomeClass.java。突然,我需要恢复到该标签以创建一个错误修复版本。我更新它,然后更改SomeClass.java。

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

1 个答案:

答案 0 :(得分: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 并阅读“主线模型”一章?