perforce:同步到较早的版本

Posted

技术标签:

【中文标题】perforce:同步到较早的版本【英文标题】:perforce: sync to an earlier revision 【发布时间】:2012-08-16 08:40:54 【问题描述】:

我想测试修复并比较修复之前和现在的行为;我需要同步到早期版本。因此,如果修复是在修订版 x 中提交的;我怎样才能同步到之前的一个版本,比如 x0?

【问题讨论】:

刚刚回答了一个关于文件规范的类似问题。将p4 changes 替换为p4 sync。 ***.com/questions/12056940/… 只是做p4 sync sand/path#version为我工作。 【参考方案1】:

假设您想从修订版 'n+1' 回到修订版 'n'(回滚)。您可以采取以下步骤:

    p4 同步 ...@n

    这会将您的文件同步到您想要的旧版本

    p4 编辑 ...

    打开所有文件进行编辑或执行“p4 编辑文件名”以仅打开特定文件进行编辑。

    p4 同步 ...@n+1

    在提交之前,您需要将文件同步到存储库中的最新版本。

    p4 解决 -ay

    这将接受您所做的更改,即还原您从修订版“n”移动到“n-1”时所做的所有更改。如此有效,您的所有文件都已回滚到本地存储库中的修订版“n”。

    p4 提交 ...

    继续提交更改。这会将所有主存储库回滚到修订版“n”。实际上,修订版“n”和“n+2”(当前)将是相同的。

    p4 diff2 -q 存储库@n 存储库@n+2

    这只是为了验证是否已回滚文件。这应该表明您在两个修订版中没有不同的文件。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 @Politank-Z 谢谢。我没有考虑清楚。 ... 是沙路吗?或user_workspace_root + sand_path ? 这非常有效。不得不为此做这么多事情有点糟糕。【参考方案2】:

我在写我的问题时找到了答案。我一直在尝试:

p4 sync ...@x0 

其中 x0 是包含修复的更改之前的更改列表。但只有一小部分文件被还原。我发现当我们指定时......只有该文件夹和子文件夹中的文件才能同步。所以上面的命令应该从工作空间的根目录执行。

【讨论】:

是的,有很多方法可以指定文件模式。尝试“p4 help revisions”来帮助您入门。然后练习,练习,练习!【参考方案3】:

如果您想为特定文件同步特定版本号(不是更改列表号)。这对我有用:

p4 sync //your/depot/path/and/file.name#1

要验证你有你想要的版本,你可以使用have cmd

p4 have //your/depot/path/and/file.name

【讨论】:

以上是关于perforce:同步到较早的版本的主要内容,如果未能解决你的问题,请参考以下文章

Perforce ( P4 ) 将树中的特定版本移动到树的顶部

确定用于在 perforce 中提交新更改的更改列表

Perforce:同步主数据但也直接下载派生数据

perforce p4 同步问题

Perforce:如何从分支操作之前获取“截至”日期或修订版本的文件?

在 Perforce 中查看具有特定版本的文件