在Accurev中“取消推广”文件的最佳方式?

时间:2010-03-09 02:47:54

标签: accurev

我的公司使用Accurev进行源代码控制,并且为了它的所有好处,有一个简单的操作,我无法弄清楚如何完成。

例如,我们经常会有人在我们的流结构中意外地将文件推得太远 - 从“开发”流到“发布”流。 “取消推广”此文件的最佳方法是什么?也就是说,要将旧版本的文件恢复到“Release”流中,并将该文件的新版本保留在它所属的“开发”流中?

只需对Release流中的文件执行“Revert to Backed”或其他Revert操作,就会导致旧版本的文件传播到Development中,或者会使文件完全消失。

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

我还考虑过将文件移动到“更高地”的流,恢复,然后再将它们交叉推广到下游。这看起来真的很糟糕。

似乎Accurev模糊不清以至于谷歌没有帮助,所以我向StackOverflow的优秀人士寻求帮助 - 是否有人想出了“Accurevy”的方法来实现这一目标?

4 个答案:

答案 0 :(得分:29)

  1. 转到主流浏览器

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

  3. 在历史记录浏览器中,右键点击要恢复的宣传,然后选择“还原”

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

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

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

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

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

    简单(具有讽刺意味)。

    史蒂夫

答案 1 :(得分:12)

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

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

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

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

退后一步。我倾向于利用accurev流来比早期验证代码并仅在验证时提升链。因此,当你提升更高时,回复的机会就会减少。

答案 2 :(得分:5)

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

有关5.2版的更多信息,请访问发布说明 -

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

答案 3 :(得分:2)

我说这不完全是舌头,但你可以在本地运行Mercurial然后当你遇到这种情况时回滚你的Mercurial,重新推广到Accurev,然后再次向前滚动Mercurial。我工作场所的几位开发人员发现Accurev如此繁琐,以至于这种模式正在获得一些牵引力。