clearcase——更新和变基之间的区别

发布于 2024-10-24 12:46:47 字数 320 浏览 1 评论 0原文

我最近开始学习 ClearCase(我有 git 和 svn 的背景——我非常想念它们:))并且已经研究了这个有一段时间了:在快照视图中,什么是更新和变基之间的区别?

我知道存在差异(老实说,我已经开始完全忽略“更新”,因为它似乎从来没有做我想要的事情(即拉低其他开发人员最近所做的更改)已交付(git pull,svn update))),我只是看不出有什么区别(并且 cc 文档在这件事上帮助不大(奖励点:任何指向良好 cc 资源的指针(类似于 svn-book 的东西)或 git 手册页,例如)))。是的,那是一个句子,还有六个括号。

I have recently been thrown into learning ClearCase (I come from a background with git and svn -- I desperately miss them both :) ) and have been chewing on this one for a while: in a snapshot view, what is the difference between an update and a rebase?

I know there are differences (and honestly I have started ignoring "update" altogether, because it never seems to do what I want (which is to pull down changes that other devs have recently delivered (git pull, svn update))), I just do not see what the difference is (and the cc docs are less than helpful on the matter (for bonus points: any pointers to good cc resources (something akin to svn-book or the git man pages, for example))). Yes, that was one sentence, and half-dozen parentheticals.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凯凯我们等你回来 2024-10-31 12:46:47

更新仅限于快照视图:请参阅快照视图和动态视图之间的区别

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

如果您想获得其他开发人员的开发,您可以仅更新那些已在与您使用快照视图监视的分支相同的分支上签入其代码的开发人员。
如果您使用 UCM,那么这些开发人员的视图必须与快照视图所使用的流相关联。

然后,更新将允许您取回(并在必​​要时合并)您的同事所做的所有修改。
但这是假设您不使用“每个开发人员一个流模型”(我找不到非常有用

第一次阅读时:

Update is strictly for snapshot view: see the difference between snapshot and dynamic view.

When you do a rebase, using a snapshot view, that operation (which changes the foundation baselines of the Stream associated with the view) will be completed by an update of said snapshot view.

If you want to get the development of other developers, you can do it with an update only of said developers have been checking their code in on the same branch than the one you are monitoring with your snapshot view.
If you are using UCM, those developers must have their view associated with the same Stream than the one used by your snapshot view.

Then, an update will allow you to get back (and merge if necessary) all the modifications done by your colleagues.
But that is assuming you don't use the "one Stream per developer model" (which I don't find very useful)

For a good first read:

安稳善良 2024-10-31 12:46:47

如果我们不清楚的话,通俗来说,流=分支。

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

变基会拉取对中央集成流所做的更改,这些更改是由公司内的不同开发人员从各自的流中提交的。从子流到集成流的提交称为“交付”,这与变基相反。

In case we are not clear, a stream = a branch in common term.

For UCM, an update is typically only useful when working on a shared-stream, such that another developer could be checking in files on that stream that you are working on. In this scenario, you use "update" to pull the changes made by that developer on that same stream.

A rebase pulls changes made on the central integration stream that has been committed by different developers across your company from their respective streams. A commit from substream to integration stream is called a "deliver" which is the opposite of rebase.

楠木可依 2024-10-31 12:46:47

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

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

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

Update just updates a snapshot view so that it matches the corresponding versions in ClearCase.

Rebase is for UCM projects - it merges changes from the latest recommended baseline in the integration stream into your personal development stream.

Normally you use update for snapshot views of non-UCM stuff, whereas you use rebase for UCM projects.

原来分手还会想你 2024-10-31 12:46:47

据我了解,Clearcase 更新就像 git 中的合并。

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

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

  • 如果您变基到另一个标签,那么就像重写您的历史记录以表明该分支是从这个新标签创建的。
  • 这允许您继续在功能分支上进行开发,然后在发布更改之前,您可以将您的分支rebase到最新的官方标签。

From what I understand, Clearcase update is like a merge in git.

  • It pulls down changes and then adds them as a new commit on that branch.
  • The base label doesn't change.

A rebase on the other hand is just like a rebase in git.

  • If you rebase to another label, then it's like rewriting your history to show that that branch was made from this new label.
  • This allows you to continue development on a feature branch and then before you release your changes you can rebase your branch to the latest official label.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文