28

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

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

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

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

我还考虑过将文件移动到“高地”流,还原,然后再次将它们交叉提升到较低的流。这似乎真的很笨拙。

Accurev 似乎不够晦涩,以至于 Google 帮不上什么忙,所以我求助于 StackOverflow 的好人——有没有人想出“Accurevy”的方法来实现这一点?

4

4 回答 4

30
  1. 进入主流浏览器

  2. 右键单击您不小心升级到的流,然后选择“显示历史记录”

  3. 在历史浏览器中,右键单击要恢复的推广并选择“恢复”

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

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

  6. 您可以注意到您的工作区不再包含任何有问题的文件,但大概您希望将您不小心提升的文件恢复到您的工作区?如果是这样,请返回流的历史浏览器,右键单击您刚刚制作的宣传(带有已恢复编辑的宣传),然后选择“恢复”。然后,您可以选择与目标相同的工作区。

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

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

就这么简单(讽刺意味)。

史蒂夫

于 2010-04-08T14:44:18.697 回答
12

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

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

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

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

退后一步。我倾向于利用 accurev 流来比经常更早地验证代码,并且仅在验证后才提升链。因此,随着您晋升的机会越高,恢复的机会就越少。

于 2010-03-10T06:53:16.243 回答
5

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

有关 5.2 版的更多信息,请访问以下位置的发行说明 -

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

于 2011-07-06T15:55:18.493 回答
2

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

于 2012-08-20T19:40:33.943 回答