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



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

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

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

简单的解决方案是更改SomeClass.java,然后创建一个新标签,称为"版本-1.0.1",它标记SomeClass.jar的新版本,而不是旧版本,但在其他方面与版本-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/...

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

如果这是你第一次思考开发分支、发布分支等问题,我可以建议你阅读一下http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf或者拿起一本Laura Wingerd的《实用表演》,阅读关于"主线模型"的章节?

最新更新