如何按日期弹出AccuRev流?

7
我想对一些旧代码进行分析,并需要能够弹出特定日期的流。我不想创建快照或工作区,我只需要六个月前的所有源代码。有没有简单的方法可以做到这一点?
在我的研究中,我认为我可能需要使用hist命令获取给定日期的最新事务,创建一个引用树,然后对该事务编号进行更新。但是,当我这样做时,更新命令会出现“给定的更新事务超出范围”的错误。
4个回答

10

顺便提一下,AccuRev 4.9 版本增加了“pop -t”功能,可以指定时间点来获取代码的“当前状态”。这将有助于您以后寻找所需内容...


谢谢,这正是我所需要的。但是,我们使用的是4.6.2版本(今晚将迁移到4.8.0),所以我不能使用它。 - Bryan Oakley

8
创建一个带有时间规则的子流。然后从中弹出。您可以从GUI中执行此操作。以下是CLI。
$ mkdir code && cd code
$ accurev mkstream -s <Child> -b <Parent> -t "<Time>"   # format: YYYY/MM/DD HH:MM:SS
$ accurev pop -R -v <Child> -L . .

如果您通用命名,就可以在其他地方重新使用它来执行基于时间的弹出操作。因此,大部分情况下,您只需要一个流(例如,您不需要为每个基于历史记录的弹出操作创建时间流)。
$ accurev chstream -s <Child> -b <NewParent> -t "<NewTime>"

HTH - dave


@davidpthomas:谢谢,但我不认为那对我有用。我需要处理50多个仓库,不想在每个仓库中都创建一个新的流。 - Bryan Oakley
经过大量的研究,我发现这是唯一的方法,所以我下定决心创建了所有这些流(或者说,有一个脚本来创建它们)。 - Bryan Oakley

5
您可以在不创建流的情况下,通过命令行执行以下操作。
accurev pop -R -v stream_name -L c:\MyDirectory -t "2012/11/01 00:00:00" \.\

这将从流stream_name中检索所有文件,即它们在2012年11月1日的状态,并将它们放入c:\MyDirectory

-t参数还可以使用事务号码,因此您可以指定-t 12345。最后一个参数\.\表示根目录-您可以在Accurev中指定任何路径,例如\.\MyProject\src


2

这个链接坏了吗? - spemble

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接