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

如何提交Perforce标签中的源文件的新版本,perforce,Perforce,假设我有一个文件//depot/Project/com/company/Project/SomeClass.java,文件名为“version-1.0.0”。突然,我需要回到那个标签上来创建一个bug修复版本。我对它进行了更新,然后对SomeClass.java进行了更改 这是我不明白的部分。如何将固定的SomeClass.java提交给Perforce,而不覆盖源代码树的任何更新版本?使用Mercurial或Git,我会有一个具有固定源代码的分支,我只会从那里创建错误修复构建。但是现在我不知道

假设我有一个文件//depot/Project/com/company/Project/SomeClass.java,文件名为“version-1.0.0”。突然,我需要回到那个标签上来创建一个bug修复版本。我对它进行了更新,然后对SomeClass.java进行了更改


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

您在性能上的选择与在其他系统中的选择基本相同,尽管术语有点不同

简单的解决方案是更改为SomeClass.java,然后创建一个名为“version-1.0.1”的新标签,该标签标记SomeClass.java的新版本,而不是旧版本,但在其他方面与version-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分支

如果这是你第一次思考开发分支、发布分支等问题,我能建议你读一读或拿一本Laura Wingerd的实用性能并阅读“主线模型”一章吗