有人做了一个删除文件的subversion提交,并添加了一个同名的新文件,该文件由原始文件和~155个新行组成.
(我不知道他们是怎么做到的.)
现在’svn log’只显示回到该提交的历史记录,如果我想在他们这样做的时间点之前和之后对该文件进行差异修改,我必须跳过箍. (例如’svn diff url @ oldrev url @ newrev’而不是’svn diff -r n:m’)
发生这种情况后,已对此文件进行了少量提交. (3点左右).
我怎样才能解决这个问题?
我在Linux上使用命令行’svn’客户端.
最佳答案 Mightymuke实际上是对的:
以下是说明:
>记下新创建文件的所有修订版(我称之为R1 ..到Rn)
>记下删除原始文件时的修订(我称之为Rd)
>至少查看此文件的工作副本
>删除新文件并在提交消息中提交更改和状态,在提交R1中添加了错误的文件(说明修订版并确保每个人都能理解添加错误的原因)
>更新你的工作副本(‘svn update’)
>如果使用tortoiseSVN,请使用show log并在历史记录中找到Rd,单击它并右键单击已删除的文件并选择“从此修订版还原更改”不要在整个修订版本中使用此项,因为这样您可以撤消其他更改好.在其他操作系统上使用反向合并(“ – c-Rd”表示例如“-c-50”,如果50是您删除的文件的修订版):
svn merge -c-Rd
>将当前文件内容从已删除的文件复制到revived on和commit(在提交消息中声明撤消的Revisions R2..Rn).备选:您可以重新创建每个旧版本并单独提交它们(在每个提交消息中声明原始版本R2 … Rn)