在svn中,我可以恢复更改并将其搁置以待以后使用吗?

时间:2009-05-01 22:06:44

标签: svn merge patch shelve

我有一些更改在我的svn存储库中提交了一些提交。让我们说HEAD是在r750,我想恢复r745而不会丢失r746-r750。这可能吗?

并且,我可以以某种方式保存r745并在以后重新应用(作为新版本)吗?

2 个答案:

答案 0 :(得分:17)

假设你得到一个干净的向后合并,你可以这样做......

svn merge -r 745:744 <source>

然后,当您想要重新应用它时,您可以将其合并回来:

svn merge --ignore-ancestry -r 744:745 <source>

有关详细信息,请查看“Common Use-Cases for Merging。”

答案 1 :(得分:2)

是的,这绝对是可能的。

当您还原更改时,它仍会在存储库中创建新修订。所以你会做这样的事情:

1)查看当前副本r750。

2)使用svn merge -r在工作副本上指定还原。您的工作副本将合并旧版本。

3)将工作副本签入r751。

现在,您将在历史记录中进行两次修订。新的(r751)不包括r745,因为你把它翻了回来。但是如果你想重新申请,r745仍然会在那里。您只需查看r745的副本,将其合并到您的工作副本中,然后重新检入(例如r752)。