在Eclipse中使用SVN回滚错误的更改

在Eclipse中使用SVN回滚错误的更改

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),右键单击它们,选择Replace with...,然后从Latest from Repository或某些Branch版本中选择最佳选项。获取这些文件后,您可以对其进行修改(使用空格或修复某些内容,然后调用并提交它们以创建更新的修订版。

    一种更干净的方法是在团队菜单中选择Merge,然后浏览向导,这将帮助您恢复实际修订版中的旧版本。

    这两个命令都有等效的命令行:svn revertsvn merge


    如果您想一次创建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
    2)转到Windows资源管理器,然后右键单击您的项目目录
    3选择清理选项(通过选中中断锁定选项)

    其作品。

    希望这对某人有帮助。


    推荐阅读

      linux改文件权限命令?

      linux改文件权限命令?,系统,工具,档案,权限,文件,信息,命令,目录,选项,用户,

      linux命令交换文件名?

      linux命令交换文件名?,命令,文件,数据,名称,工具,地址,软件,系统,基础知识,

      linux下替换文件命令?

      linux下替换文件命令?,文件,一致,评论,名称,标的,资料,工作,命令,字符串,内

      linux文件nl命令?

      linux文件nl命令?,地址,工作,信息,系统,情况,标准,实时,对比,百度,命令,linux

      linux寻找文件夹命令?

      linux寻找文件夹命令?,名称,命令,文件,位置,工作,标准,目录,子目录,文件名,

      linux跳到文件尾命令?

      linux跳到文件尾命令?,系统,文件,命令,管理,状态,实时,末尾,光标,内容,编辑,l

      linux把文件复制命令?

      linux把文件复制命令?,名字,文件,软件,系统,位置,目录,命令,源文件,目标,文

      linux文件夹合并命令?

      linux文件夹合并命令?,文件,对比,第一,下来,命令,文件夹,两个,字段,内容,数

      linux下文件创建命令?

      linux下文件创建命令?,名字,名称,首次,命令,文件,系统,密码,文件名,文件夹,

      linux命令行安装文件?

      linux命令行安装文件?,软件,官网,密码,中心,电脑,文件,命令,终端,指令,版本,L

      linux解压文件命令行?

      linux解压文件命令行?,系统,电脑,命令,文件,平台,名称,软件,管理,标准,目录,

      linux命令编辑文件?

      linux命令编辑文件?,系统,状态,电脑,命令,数据,标准,不了,名称,发行,网络,Lin

      linux文件乱码命令?

      linux文件乱码命令?,系统,环境,乱码,信息,状态,盘中,文件,字符集,中文,文件

      linux的删除文件命令?

      linux的删除文件命令?,名称,不了,系统,文件夹,命令,文件,环境,档案,目录,指

      linux赋值文件命令?

      linux赋值文件命令?,标准,数据,系统,状态,命令,赋值,变量,权限,文件,脚本,lin

      linux备份文件的命令?

      linux备份文件的命令?,系统,设备,网络,工具,平台,名称,备份,文件,命令,目录,l

      linux命令创建文件加?

      linux命令创建文件加?,名字,管理,系统,名称,密码,首次,命令,文件,文件夹,位

      linux文件基础命令?

      linux文件基础命令?,地址,基础,管理,命令,情况,系统,工作,标准,单位,网络,lin

      linux命令忽略错误?

      linux命令忽略错误?,系统,地址,工作,信息,设备,命令,设计,灵活,观察,标准,lin