version-control - clearcase 强制执行 : how to branch?

标签 version-control migration perforce clearcase

我们正在从 clearcase 迁移至 perforce我对分支有疑问。

clearcase一旦我分支(比如 my_branch ),我可以继续提交对文件的增量更改(比如 xyz.cpp )而不必担心 main .

element * CHECKEDOUT
element * .../my_branch/LATEST
element * /main/LATEST -mkbranch my_branch

我可以继续 checkout 和 checkin xyz.cpp我想进入多少次 my_branch .假设我进行了 23 次签到,我觉得第 21 次签到是需要进入 main 的一次。 , 我可以使用 ct get 进行第 21 次签到并将其合并到 main .

我可以对 xyz2.cpp 中的此分支中的任意数量的文件(比如 xyz3.cppclearcase ...)执行此操作.我不确定如何在 perforce 中执行此操作.

我如何在 perforce 中复制此过程?我看到p4 submit但它进入 main .基本上,我想继续保存增量更改,并在将它们合并到 main 之前根据需要为任意数量的文件检索它们。 .

最佳答案

您可以使用几乎相同的过程,但当然机制不同。

第 1 步:创建您的新分支

假设您在 Perforce 中有一个位于 //depot/project/main 的主要分支。 . (该路径采用 Perforce depot 语法。如果您需要,我可以添加指向相关文档的链接。)

我将定义一个分支映射来捕获有关主分支和我的新分支如何相互关联的信息。
p4 branch my_branch
在分支图中,我将添加此 View :
//depot/project/main/... //depot/project/my_branch/...
现在我将创建分支:
p4 populate -b my_branch
第二步:使用新分支

我将创建一个包含两个分支的工作区。我不会详细介绍所有细节,但我需要一个看起来像这样的工作区 View :
//depot/project/main/... //my_ws/main/...//depot/project/my_branch/... //my_ws/my_branch/...
现在我将填充工作区:
p4 sync
请注意,我的工作区中将有两个分支的副本。现在我将检查并更改 my_branch:
p4 edit my_branch/foo.cp4 submit -d "my_branch changes
我可以在 my_branch 上进行尽可能多的更改我需要。

第 3 步:合并到主

好的,现在我准备合并 my_branchmain .如果我想合并我运行的所有内容:
p4 integ -r -b my_branch
如果我只想合并一个文件:
p4 integ -r -b my_branch //depot/project/main/foo.c
请注意,我指定了目标文件。

如果我只想合并单个文件的特定修订版:
p4 integ -r -b my_branch //depot/project/main/foo.c#21

关于version-control - clearcase 强制执行 : how to branch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13277620/

相关文章:

authentication - Perforce:在多个用户之间共享登录帐户/客户端规范有什么副作用吗?

linux - 是否可以在两个 perforce 存储库之间创建链接?

mysql - 向 MySQL 单元添加时间维度

synchronization - 使用 perforcesync -p 选项有什么优点?

不克隆存储库的 Git 日志?

google-app-engine - 从 Google App Engine 迁移出来有多难?

migration - 尝试使用 ecto elixir 创建迁移时出现 Umbrella 应用程序错误

mysql - 如何将这些分解后的数据移动到另一个表中?拉维尔 5.3

c# - 我可以将自定义版本字符串添加到 .net DLL 吗?

git - git 是否支持像 Subversion 这样的任意属性的版本控制?