0

当我对某些文件进行了未提交的更改时,我执行了 SVN 合并。我忘记了未提交的更改,所以我想中止合并。注意到冲突后,SVN 目前要求我从选项中进行选择

Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
        (mc) my side of conflict, (tc) their side of conflict,
        (s) show all options: 

据我所知,这些都不等同于“中止”(也不是用(s)显示的任何选项)。我该如何退出呢?ctrl+安全z吗?

4

2 回答 2

0

从名称上看,我曾假设“(p) 推迟”会循环浏览冲突的文件,要求我对每个文件采取行动。相反,在搜索文档(其中没有“推迟”的索引条目)之后,我发现这是我能找到的最接近“中止”过程的第一步。

选择“推迟”根据合并更改工作副本中的非冲突文件,因此它不是真正的中止。但是,它会将您返回到命令提示符,其中包含工作副本中的三个附加文件

filename.working
filename.rOLDREV
filename.rNEWREV

对于每个filename有合并冲突的文件。这来自文档的“基本用法”部分,SVN 1.7 上述链接的第 29 页/pdf 第 50 页。该文档指的是filename.mine而不是filename.working,因此显然这是版本之间的某种变化。

从这里,您可以使用命令行命令将工作副本恢复到尝试合并之前的状态。例如,假设您尝试了合并

$ svn merge -r NEWREV:OLDREV ^/branches/testing/ 。

testing忘记您在testing/filename. 当冲突中断合并时,选择“(p) 推迟”返回命令提示符。 testing/filename.mine是您要保留的文件 - 合并前处于工作副本状态的文件。将其移至您的主文件夹或类似位置以妥善保管。

您工作副本中的大多数文件都将与它们的 OLDREV 版本相同。

**注意*:此时,我已经写完这个答案并尝试提交它。Stack Overflow 向我展示了一个没有 CAPTCHA 框的 CAPTCHA 叠加层,因为我不允许它使用正确的 JavaScript。我允许了 JavaScript 并重新加载了页面,这抹去了我尚未保存的其余答案,而且我绝不会重写它。

于 2018-05-04T15:48:45.923 回答
0

该选项将推迟所有剩余的冲突,并且不会像为每个冲突q选择(推迟)那样留下文件跟踪。p

于 2021-05-26T17:12:31.227 回答