在Eclipse中使用svn回滚不好的更改
比方说,我已经对Subversion版本库做了一些不好的改变。 然后我做了很好的改变,我想保持。
在Eclipse中回滚那些不好的变化最简单的方法是什么?保持良好的变化? 假设有关不良变更的文件与有关良好变更的文件不同。 如果对相同的文件进行了很好的修改,情况会如何改变?
我主要是想通过Eclipse插件(Subclipse或Subversive)来做到这一点,但命令行命令也很有趣。
你有两个select来做到这一点。
Quick and Dirty是在Project Explorer视图中select文件(使用ctrl ),右键单击它们,selectReplace with...
,然后从Latest from Repository
或Branch
version中为您select最佳选项。 得到这些文件后,你可以修改它们(用一个空格或修改一些东西,调用它们并提交它们来创build一个更新的版本。
一个更干净的方法是在团队菜单中selectMerge
,并浏览向导,这将帮助您恢复实际版本中的旧版本。
两个命令都有它们的命令行等效项: svn revert
和svn merge
。
在Eclipse Ganymede(Subclipse)
select包含错误更改的项目/文件,然后从popup菜单中select:
团队 – >显示历史
与该项目/文件相关的修订将显示在“历史logging”选项卡中。
find修改“改变不好”的地方,从popup菜单中select:
恢复版本X中的更改
这将合并在错误版本中修改的文件中的更改,以及在错误版本之前的版本中的更改。
这里有两种情况:
-
如果您没有提交该文件的更改(错误的修订版是该文件的最后修订版),则只会删除在错误的修订版中所做的更改。 这些更改合并到您的工作副本,所以你必须提交它们。
-
如果您对该文件进行了某些更改(错误的修订版本不是该文件的最后一个修订版),则必须手动解决冲突。 假设你有一个readme.txt文件,而且修订版本号是33,而且你已经在修订版本34中对这个文件进行了另一个提交。当你从修订版本33select还原修改版本后,你的工作副本中会有以下内容:
readme.txt.merge-left.r33 – 错误的版本
readme.txt.merge-right.r32 – 修正之前
readme.txt.working – 工作副本版本(如果没有任何未提交的更改,则与r34相同)
原始的readme.txt将被标记为冲突,并且将包含合并版本(其中来自坏版本的改变被移除)与一些标记(<<<<<<< .working等)。 如果您只是想从不良修订版本中删除更改并保留更改,那么您只需删除标记即可。 否则,您可以将上述3个文件之一的内容复制到原始文件。 无论你select什么,当你完成时,标记冲突解决了
团队 – 马克解决
临时文件将被删除,您的文件将被标记为已更改。 如1所示,您必须提交更改。
请注意,这不会删除svn版本库中修订历史logging的版本。 你只是做了新的修订,从坏的修订版本的变化被删除。
如果您想一次执行1个文件,则假设您已经安装了Eclipse SVN插件,则可以转至该文件的历史logging视图。 “团队 – >显示历史”
在历史视图中,find该文件的最新版本,右键单击并select“获取内容”。 这将replace您的当前版本与该版本的内容。 然后,您可以在修复完所有内容后进行修改。
在使用Subversive的Eclipse中:
右键单击您的项目>团队>合并
在合并窗口中,select要正常恢复的修订版本,同时启用checkbox“反向合并”。
正常合并。
我已经写了一些关于这个主题的博客文章。 一个是以Subclipse为中心的: http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html和一个以命令行为中心的:; http://blogs.collab。净/颠覆/ 2007/07 /第二机会/
svnbook有一个关于Subversion如何让你恢复特定版本的修改而不会影响后续版本中发生的修改的章节:
http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo
我不使用Eclipse太多,但在TortoiseSVN,你可以从日志对话框中做到这一点; 只需右键单击要恢复的修订,然后select“从此修订恢复更改”。
如果您想要恢复“不好的更改”的文件在后续修订中有“良好的改变”,那么过程是相同的。 从“坏”修订版本的变化将被恢复,留下来自“好”修订版本的变化不变,但是你可能会发生冲突。
我有同样的问题,但清理日食选项不适合我。
1)安装TortoiseSVN
2)转到Windows资源pipe理器,并右键单击您的项目目录
3select清除选项(通过检查中断locking选项)
其作品。
希望这有助于某人。