我是svn的新手,我在错误后陷入困境。
我有两个系统:
a)系统1 - 使用正确代码的工作副本
b)系统2 - 错误代码的工作副本,错误地提交到存储库
我想从系统1重新提交正确的代码,但我不能。如果我更改文件并尝试提交,我会收到消息:
文件xyx已过期
显然我无法更新系统1工作副本,否则我会丢失正确的代码。
如何退出此死锁?
谢谢
的Fab。
答案 0 :(得分:6)
这是一篇关于如何使用Subclipse撤消提交的文章:
基本上,您打开历史记录视图,选择错误的修订版并使用上下文菜单(来自文章)将其还原:
您可以使用 svn info / log / merge 从命令行撤消提交。以下是一篇简短的文章:svn undo from command line
答案 1 :(得分:2)
使用还原。您可以将文件还原为您认为合适的修订版。然后将该文件提交为新修订版。请务必恢复修订而不是更新到修订。
答案 2 :(得分:2)
要还原您在修订版10中错误提交的代码:
svn update
svn merge -r10:9 .
svn commit -m'reversing commit made by mistake in -r10'
现在,如果您想要恢复该代码,但保持未提交(可能要编辑它然后重新提交):
// this assumes that the reversal committed above was -r11.
svn update
svn merge -r11:10 .
答案 3 :(得分:0)
将1的代码复制并粘贴到临时位置。
更新1。
将1的代码替换为临时位置。
提交1。
更新2。
答案 4 :(得分:0)
将工作代码从系统1复制到系统2,然后提交。
答案 5 :(得分:0)
保存正确代码的副本。更新您的工作系统以使用错误代码,因此现在工作系统是“当前”。添加更改以使代码更好(可能只是将其复制回原位)。提交代码的良好副本作为下一个版本。
请记住,变化只是一种变化,无论好坏。关键是不要在shuffle中丢失好的代码副本。还有其他方法,但基本思路是一样的: