Rolling back bad changes with svn in Eclipse假设我已经对Subversion存储库进行了一些错误的更改。 然后我做出一些我想保留的好的更改。 在Eclipse中回滚这些不良更改并保留良好更改的最简单方法是什么? 假定与不良更改相关的文件与与不良更改相关的文件不同。 如果对相同的文件进行了良好的更改,而对不良的更改进行了更改,那么事情将如何改变? 我主要在寻找通过Eclipse插件(Subclipse或Subversive)执行此操作的方法,但命令行命令也很有趣。 在Eclipse Ganymede(Subclipse)中 选择包含重大更改的项目/文件,然后从弹出菜单中选择: 团队->显示历史 与该项目/文件相关的修订将显示在"历史记录"选项卡中。 查找提交了"重大更改"的修订,然后从弹出菜单中选择: 从修订版X还原更改 这将合并在错误修订中修改的文件的更改,并在错误修订之前进行修订。 这里有两种情况: 如果您没有对该文件进行任何更改(错误修订是该文件的最新修订),它将仅删除在错误修订中进行的更改。这些更改将合并到您的工作副本中,因此您必须提交它们。 如果您对该文件进行了某些更改(错误修订不是该文件的最新修订),则必须手动解决冲突。假设您有文件readme.txt,错误的修订号是33。此外,您还对该修订版34中的文件进行了一次提交。选择"从修订版33还原更改"后,您的工作副本中将包含以下内容: readme.txt.merge-left.r33-不良修订 readme.txt.merge-right.r32-错误修订之前 readme.txt.working-工作副本版本(如果没有任何未提交的更改,则与r34中的版本相同) 原始readme.txt将被标记为冲突,并且将包含带有某些标记(<<<<<<<。working等)的合并版本(其中删除了较差修订的更改)。如果您只想从不良修订中删除更改并在此之后保留更改,那么您要做的就是删除标记。否则,您可以将内容从上述3个文件之一复制到原始文件。无论选择什么,完成后都将冲突标记为 团队-马克解决 临时文件将被删除,您的文件将被标记为已更改。与1中一样,您必须提交更改。 请注意,这不会从svn信息库的修订历史记录中删除修订。您只需进行新修订,即可删除不良修订中的更改。 您有两种选择可以执行此操作。
快速和肮脏在Project Explorer视图中选择文件(使用ctrl),右键单击它们,选择
一种更干净的方法是在团队菜单中选择
这两个命令都有等效的命令行: 如果您想一次创建1个文件,则可以在已安装Eclipse SVN插件的情况下转到文件的"历史记录"视图。"团队->显示历史记录" 在"历史记录"视图中,找到该文件的最新版本,右键单击并选择"获取目录"。 这会将当前版本替换为该版本的内容。 然后,您可以在全部修复后提交更改。 在使用Subversive的Eclipse中: 右键单击您的项目>团队>合并 在合并窗口中,选择要照常还原的修订,但还要启用"反向合并"复选框。 正常合并。 我已经写了几个关于这个主题的博客文章。一种以Subclipse为中心:http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html,另一种以命令行为中心:http://blogs.collab。 net / subversion / 2007/07 / second-chances / svnbook的一节介绍了Subversion如何允许您从特定修订版本还原更改,而又不影响后续修订版本中发生的更改: http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo 我使用的Eclipse并不多,但是在TortoiseSVN中,您可以通过日志对话框中的来实现。只需右键单击要还原的修订,然后选择"还原此修订的更改"。 如果您要还原"错误的更改"的文件在后续版本中具有"良好的更改",则过程相同。"不良"修订版的更改将被还原,而"良好"修订版的更改将保持不变,但是您可能会遇到冲突。 我有同样的问题,但是Cleanup eclipse选项对我不起作用。
1)安装TortoiseSVN 其作品。 希望这对某人有帮助。 |