如何将更改从特定修订复制/重新应用到工作/头修订?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将更改从特定修订复制/重新应用到工作/头修订?相关的知识,希望对你有一定的参考价值。

我们正在研究一个项目,然后突然有一些不合作/顽固的家伙进入并检查了搞砸了项目的东西 - 使其不可构建但对我的模块没有影响。所以我们仍然在使用上一个已知的工作版本时工作,我检查了我的更改,就像正常一样。然后项目经理决定将所有内容恢复到最后一个已知的工作版本(r1810),它变成了r1824。

现在,如何重新应用1814年,1815年和1821年的修订版?

我大部分时间都在Windows资源管理器上使用Tortoise SVN,在Visual Studio上使用AnkhSVN所以我可以说在使用SVN时我仍然是使用命令提示符的新手。

答案

你需要“挑选”这些变化。

引用the manual

<...>一词樱桃。这个词指的是从分支中选择一个特定变更集并将其复制到另一个分支的行为。 Cherrypicking也可以指从一个分支到另一个分支复制一组特定(不一定是连续的!)变更集的行为。这与更典型的合并方案形成对比,其中“下一个”连续修订范围自动复制。

樱桃采摘,使用svn merge -c 1814 ^whatever/branch;再次,引用the manual

--change (-c) ARG

使用特定的“更改”执行请求的操作。一般来说,这个选项是-r ARG-1:ARG的语法糖。某些子命令允许以逗号分隔的修订号参数列表(例如,-c ARG1,ARG2,ARG3)。或者,您可以提供两个以短划线分隔的参数(如-c ARG1-ARG2中),以标识ARG1ARG2之间的修订范围(包括在内)。最后,如果修正参数被否定,隐含的修订范围将被反转:-c -45等同于-r 45:44

更新:由于OP的消息,他们需要使用--ignore-ancestry命令行选项来svn merge -c,因为他们使用单分支进行开发。

以上是关于如何将更改从特定修订复制/重新应用到工作/头修订?的主要内容,如果未能解决你的问题,请参考以下文章

如何从特定修订版更改 GIT 中提交的作者 [重复]

在 Git 中,如何获取从一个修订版到另一个修订版的文件更改的详细列表?

如何下载规范修订版?

Tortoise SVN Merge 特定版本

svnadmin 加载重新编号修订

Go:如何将 git 修订添加到构建的二进制文件中?