如何在SVN上强制您的本地版本为最新版本
我做了一些更改并提交(到版本2),几分钟后发现它们给我的程序引入了新的bug。因此,我将一些文件切换到旧版本,以便在本地平台上将一些文件恢复到版本1。从那以后,我做了很多我不想丢失的更改,我使用commit(版本3)在服务器上获取本地更改 我在本地拥有的版本正是我希望作为head修订版出现在存储库中的版本,尽管有些文件仍然在“version 1”上。我想我应该以某种方式使用SVN merge,但我不确定该怎么做。有什么建议吗 编辑:当我使用diff时,它显示从本地版本到rep版本的更改。我可以做更新,但我会有一个非工作版本在本地再次。所以我想要的是某种强制提交,只是说“这是最新版本,句号” edit2:执行“提交”时,SVN报告没有更改。感谢尼尔·巴特沃斯的提问 edit3:我最终做了什么,仅供参考:我本应该使用Tim的建议,但我太傻了,没有真正考虑我在做什么就更新了。当然,当时一切都乱七八糟,无法修复。所以我最后做的是将项目导出到一个新目录。这显然不是你应该做的,但我不想再搞砸这件事了。最后,我不得不在实际项目上取得实际进展;-)我知道当我在一个更大的团队工作时,我不能做这样的事情,但我不是:)暴力方式:如何在SVN上强制您的本地版本为最新版本,svn,merge,Svn,Merge,我做了一些更改并提交(到版本2),几分钟后发现它们给我的程序引入了新的bug。因此,我将一些文件切换到旧版本,以便在本地平台上将一些文件恢复到版本1。从那以后,我做了很多我不想丢失的更改,我使用commit(版本3)在服务器上获取本地更改 我在本地拥有的版本正是我希望作为head修订版出现在存储库中的版本,尽管有些文件仍然在“version 1”上。我想我应该以某种方式使用SVN merge,但我不确定该怎么做。有什么建议吗 编辑:当我使用diff时,它显示从本地版本到rep版本的更改。我可以做
- 对于每个更改的文件,
- 比较差异,注意要保留的更改,并相应地更改本地副本李>
- 制作本地文件的副本
- 将合并头反转回所需的原始版本
- 将本地文件的副本粘贴到合并的本地副本上。(先删除.svn)
- 承诺
- 实际上,您切换到了回购协议的前一个版本,因此您使用了第1个版本李>
- 或者在版本2上签出文件的旧版本,对其进行更改并作为新版本提交
- 保留当前文件的备份李>
- 查看回购协议的新副本李>
- 如果你看到它和你的副本是一样的,那就别无选择了
- 如果没有,请使用备份覆盖新副本中的所有文件(隐藏的.svn文件夹除外!)
- 这里有两种可能性:
相反,您应该恢复特定版本的更改。此后,您应该仍然能够更新和恢复该修订版中的更改。提交更改时会发生什么?它显示:无更改。好问题,如果没有别的办法,那就是B计划。但这需要相当多的体力劳动。我更喜欢用更聪明的方式做;-)这不是真正的手册。我以前做过很多次。假设使用windows,则选择全部、复制、粘贴到其他位置。搜索所有.svn,删除。更新到head。复制旧版本,粘贴回。在我看来,这不是正确的解决方案。你应该听从苏玛的回答。请记住,只有当文件的本地版本等于头部版本时,才能提交文件。因此,您可以通过合并回不需要的commit.True来撤消更改,但前提是文件数量很小。别忘了,他把旧文件和修改过的文件都混在一起了。确定要还原的内容将是非常手动的。此外,如果其他开发人员做出了良好的更改,则恢复将消除这些更改,而没有机会修复冲突。如果其他开发人员更改了某些内容,则按照您的建议将覆盖这些更改。我建议只恢复有问题的提交。不管他会采取什么样的解决方案,他最好在做出承诺之前仔细看看差异。这对我来说比公认的答案更有意义。我自己也做过几次。