我做了一些更改并提交了它们(到版本2),并发现他们在几分钟后向我的程序引入了新的错误.因此,我将一些文件切换到较旧版本,以便将一些文件恢复到本地平台上的版本1.从那时起,我做了很多我不想丢失的更改,并且我使用了commit(版本3)来获取服务器上的本地更改.
我在本地的版本正是我希望在存储库中作为头版本,即使一些文件仍然正式在"版本1".我假设我应该以某种方式使用SVN合并,但我不确定如何做到这一点.有什么建议?
编辑:当我使用diff时,它显示从本地版本到rep版本的更改.我可以做更新,但之后我会在本地再次使用非工作版本.所以我想要的是某种强制提交,只是说"这是最新版本,期间".
edit2:执行"提交"时,SVN报告没有更改.感谢Neil Butterworth的提问.
编辑3:我最终做了什么,仅供参考:我应该使用蒂姆的建议,但我傻到做更新而没有真正考虑我在做什么.当然,一切都被搞砸了,无法修复.所以我最终做的是将项目导出到一个新目录.这显然不是你应该这样做的方式,但我不想再惹这个东西了.最后我不得不回到实际项目的实际进展;-)我知道当我在一个更大的团队工作时,我不能做那样的事情,但我不是:)
蛮力方式:
如果您正确执行了此操作,SVN客户端应将更改的文件解释为存储库的更新.但是,这将覆盖您可能想要保留的其他人所做的任何更改.如果要保留这些更改,请在进行最终提交之前先对所有文件执行diff操作并合并所有最近的更改.
反向合并回原始版本:
除非您只是将所有内容还原而不检查任何更改,否则这可能更加手动.
Subversion,AFAIK,还没有提供删除命令,因此所有更改总是发生在HEAD的本地副本上.
还原只是反向合并,所有合并始终发生在本地副本上.在理想的系统中,将跟踪合并,但Subversion不跟踪合并信息,因此您不妨执行方法1,只需在提交日志中进行注释即可.
要查找的一些网址: