clearcase - 更新和rebase之间的区别

时间:2011-03-18 22:56:18

标签: version-control clearcase

我最近开始学习ClearCase(我来自git和svn的背景 - 我非常想念他们:))并且已经咀嚼了这一段了一段时间:在快照视图中,更新和rebase有什么区别?

我知道存在差异(老实说,我已经开始完全忽略“更新”,因为它似乎永远不会做我想要的(这是为了降低其他开发人员最近提供的更改(git pull,svn update)) ),我只是看不出有什么不同(并且cc文档对此事的帮助不大(奖励积分:任何指向好cc资源的指针(例如类似于svn-book或git手册页) ))。是的,那是一个句子,还有六个括号。

4 个答案:

答案 0 :(得分:10)

更新仅适用于快照视图:请参阅 difference between snapshot and dynamic view

使用快照视图执行rebase时,将通过更新所述快照视图来完成该操作(更改与视图关联的Stream的基础基线)。

如果您希望获得其他开发人员的开发,您只需更新所述开发人员已经在与您使用快照视图监控的分支相同的分支上检查其代码。 如果您使用的是UCM,那些开发人员必须将其视图与快照视图使用的视图相关联。

然后,更新将允许您返回(并在必​​要时合并)您的同事所做的所有修改。
但是假设您没有使用“每个开发人员模型一个流”(I don't find very useful

好好读一读:

答案 1 :(得分:8)

如果我们不清楚,则流=共同术语中的分支。

对于UCM,更新通常仅在处理共享流时有用,这样另一个开发人员可能会检查您正在处理的该流上的文件。在这种情况下,您使用“更新”来提取该开发人员在同一个流上所做的更改。

rebase将公司内不同开发人员提交的中央集成流所做的更改从各自的流中提取出来。从子流到集成流的提交称为“传递”,这与rebase相反。

答案 2 :(得分:5)

更新只更新快照视图,使其与ClearCase中的相​​应版本匹配。

Rebase适用于UCM项目 - 它将集成流中最新推荐基线的更改合并到您的个人开发流中。

通常,您对非UCM内容的快照视图使用更新,而对UCM项目使用rebase。

答案 3 :(得分:-1)

根据我的理解,Clearcase更新就像git中的merge

  • 它下拉变化,然后将它们添加为该分支上的新提交。
  • 基本标签不会更改。

另一方面,rebase就像git中的rebase

  • 如果您重新定位到另一个标签,那就像重写您的历史记录,以显示该分支是从这个新标签制作的。
  • 这使您可以继续在功能分支上进行开发,然后在发布更改之前,您可以rebase将您的分支机构添加到最新的官方标签。