“取消促销”的最佳方式Accurev 中的文件?

发布于 2024-08-24 13:28:43 字数 493 浏览 8 评论 0原文

我的公司使用 Accurev 进行源代码控制,尽管它有很多好处,但有一个简单的操作我就是不知道如何完成。

通常,我们会遇到有人不小心将文件在流结构中推得太远的情况——例如,从“开发”流到“发布”流。 “取消升级”此文件的最佳方法是什么?也就是说,要将旧版本的文件放回到“Release”流中,而将新版本的文件保留在“Development”流中,它属于哪里?

只需对发布流中的文件执行“恢复到支持”或其他恢复操作,就会导致文件的旧版本传播到开发中,或者使文件完全消失。

在上述情况下,开发人员将不得不在流上设置基本时间,或者使用命令行工具检查旧事务,以取回文件。有时相关人员不懂技术,所以这不是一个好的解决方案。

我还考虑过将文件移动到“更高的地面”流,恢复,然后再次将它们交叉提升到较低的流。这看起来确实很糟糕。

Accurev 似乎太晦涩难懂了,以至于 Google 帮不上忙,所以我向 StackOverflow 的好心人寻求帮助——有人找到了“Accurev”方法来完成这个任务吗?

My company uses Accurev for source control, and for all its benefits, there's one simple action that I just can't figure out how to accomplish.

Often we have someone accidentally push a file up too far in our stream structure -- from the "Development" stream to the "Release" stream, for example. What is the best way to "un-promote" this file? That is to say, to get the old version of the file back into the "Release" stream, and keep the new version of the file in the "Development" stream, where it belongs?

Just doing a "Revert to Backed" or other Revert action on the file in the Release stream will either cause an old version of the file to propagate down into Development, or will make the file disappear entirely.

In the above case, the developer will have to jump through hoops with setting basis times on streams, or use the command line tool to do a checkout of an old transaction, to get the file back. Sometimes the people in question are non-technical, so this is not a good solution.

I have also considered moving the files to a "higher ground" stream, reverting, and then cross-promoting them to the lower stream again. This seems really kludgy.

It seems like Accurev is obscure enough that Google is no help, so I turn to the good folks of StackOverflow for help -- has anybody figured out the "Accurevy" way to accomplish this?

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

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

发布评论

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

评论(4

人疚 2024-08-31 13:28:43
  1. 前往主流浏览器

  2. 右键单击您不小心升级到的直播并选择“显示历史记录”

  3. 在历史记录浏览器中,右键单击您要还原的促销并选择“还原”

  4. 它'会提示您要将还原结果放入哪个工作区,您可以根据需要选择意外升级的工作区。

  5. 在您的工作区中,文件现在应该恢复到意外升级之前的状态。您现在可以将其提升回上面的流中。该流现在将包含已删除您的意外升级的文件版本。

  6. 您可以注意到您的工作区不再包含任何有问题的文件,但您可能希望将意外提升的文件放回工作区?如果是这样,请返回流的历史记录浏览器,右键单击您刚刚制作的促销(包含已还原编辑的促销),然后选择“还原”。然后,您可以选择与目的地相同的工作区。

  7. 这些文件现在可能会出现在您工作区的默认组中,并且会发生冲突,因此只需选择该批次,然后进行合并即可。您可能希望在此处接受简单的合并。

合并文件后,它们应该出现在待处理的过滤器中。您现在应该有与意外升级之前相同的待处理文件,并且上面的流的文件中应该具有与升级之前相同的内容。

就这么简单(讽刺)。

史蒂夫

  1. Go to main stream browser

  2. Right click on stream you accidentally promoted to and choose 'Show History'

  3. In History browser, right click on the promote you wish to revert and choose 'Revert'

  4. It'll prompt you which workspace you want to put the result of the revert into, you can choose the workspace you made the accidental promote from if you like.

  5. In your workspace, the files should now be back to the state before the accidental promote. You can now promote that back up into the stream above. The stream will now contain versions of the files that have your accidental promote removed.

  6. You can note your workspace no longer contains any of the files in question, but presumably you want to get the files you accidentally promoted back into your workspace? If so go back to the history browser for the stream, right click on the promote on there you just made (the promote with the reverted edits in), and choose 'Revert'. You can then choose the same workspace as the destination.

  7. The files will probably appear in the default group for your workspace now, and be conflicted, so just select the lot, and do a merge. You will likely want to accept trivial merges here.

Once you have merged the files, they should appear in your pending filter. You should now have the same files in pending as you have before you accidentally promoted, and the stream above should have the same contents in the file as before you promoted.

Simple as that (irony intended).

Steve

青春有你 2024-08-31 13:28:43

Accurev 的审计友好性、仅附加性质实际上意味着恢复更改意味着重新应用您想要的版本。直觉上,你想倒退“一步”。但在仅附加系统中,这实际上意味着继续并重新应用旧版本。因此,恢复自然是一个“前进两步”的过程,而不是“后退一步”。

在大多数情况下,恢复不会经常发生,因此“仅附加”的全局值超过了恢复配方 (IMO)。

作为一站式一致的解决方案,最准确的方法(正如您提到的)是不恢复促销交易。查看直播历史,找到不需要的推广,R点击>恢复。你需要一个子工作空间..为什么?因为执行恢复可能需要取消合并。考虑恢复插页式促销……这就像从三明治中取出生菜,然后需要将顶部和底部的面包合并在一起。仅在基于 txn 的系统中,恢复还可能包括番茄、芥末和芹菜盐,并作为单个“撤消”。因此,您需要保存合并的更改(如果存在)。无论如何,即使您只是撤消最近的升级,也只需将更改恢复到工作区,进行[偶尔]合并,然后升级所有内容。

长话短说。在任何 CM 系统中进行恢复都有点像做手术,因此您可能需要相关人员参与。

退一步。我倾向于利用 Accurev 流来提前验证代码,并仅在验证后才向上推广链。因此,当你升职越高,恢复的机会就越小。

The audit-friendly, append-only nature of accurev really means that reverting a change means re-applying the version that you want. Intuitively, you want to go backwards "1-step." But in an append-only system, this really means going-forward and re-applying an old version. Thus, reverting is naturally a "2-steps forward" process instead of "1-step back."

In most situations, reverting doesn't happen as often so the global value of 'append only' outweighs the revert recipe (IMO).

As a one-stop-shop consistent solution, the most accurate approach (as you mention) is t revert the promote transaction. View the stream history, find the unwanted promote, RClick > Revert. You'll need a child workspace.. why? because doing a revert may require an un-merge. Think about reverting an interstitial promote... it's like taking the lettuce out of a sandwich and needing to merge the top- and bottom- buns together. Only in a txn-based system, that revert may also include the tomato, mustard, and celery salt and as a single "undo." So you'll need to save the changes of the merge if one exists. In any case, and even if you're just undo'ing the most recent promote, just revert the change to the workspace, do the [occasional] merge, and promote everything up.

Long story short. Reverting in any CM system is a bit like doing surgery so you likely want relevant people involved.

Taking a step back. I tend to take advantage of accurev streams to validate code earlier-than-often and promoting up the chain only when validated. so the chance of reverting is less as you promote higher.

送君千里 2024-08-31 13:28:43

AccuRev 5.2 版引入了直接在流中恢复事务或问题的功能,无需涉及工作区。这对于恢复“发布”流中的更改很有用,但不能解决问题的第二部分(将新版本放回“开发”流中。完整的“取消升级/降级”功能计划在有关

版本 5.2 的更多信息,请访问发行说明 -

http://www. Accurev.com/download/docs/5.2.0_books/AccuRev_5_2_0_Install_Release_Notes.pdf

AccuRev version 5.2 introduces the ability to revert a transaction or issue directly in a stream, without involving a workspace. This is useful for reverting a change in the "release" stream, but does not solve the second part of your question (to put the new version back in the "development" stream. The full "unpromote/demote" feature is scheduled for a future release.

For more info on version 5.2, visit the release notes at -

http://www.accurev.com/download/docs/5.2.0_books/AccuRev_5_2_0_Install_Release_Notes.pdf

抽个烟儿 2024-08-31 13:28:43

我这样说并不完全是开玩笑,但您可以在本地运行 Mercurial,然后当遇到这种情况时回滚 Mercurial,重新升级到 Accurev,然后再次向前滚动 Mercurial。我工作场所的几位开发人员发现 Accurev 使用起来非常繁琐,因此这种模式正在获得一些关注。

I say this not entirely tongue-in-cheek, but you can run Mercurial locally and then when you run into this situation roll back your Mercurial, re-promote to Accurev, and then roll Mercurial forward again. Several developers at my workplace find Accurev so burdensome to use that this pattern is gaining some traction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文