当前位置: 代码迷 >> 综合 >> 记一次 idea 重命名(rename)事故
  详细解决方案

记一次 idea 重命名(rename)事故

热度:26   发布时间:2024-02-06 16:56:40.0

在一个 spring-boot + mybatis + thymeleaf 的项目中,为了全局更改成员变量 name 的名称,我使用了 快捷键来 rename 它:

public class Test {private String name;}

然后下边的搜到了很多用例,我按照以前的习惯,直接 do refactor ,然后我就发现这次它用了很长时间,内心感到 一丝丝不妙。

于是我随便打开一个目录看了下,完了,好多不归我负责的文件被修改了,主要是三类文件:

1. 被注释的代码。凡是被注释的代码中含有 getName 、setName 的通通被修改,不论与 Test 类 有无关系。

2. mapper.xml 文件。都是 mybatis 的映射文件,与 上条一样,无论有无关联均被修改。

3. html 文件。所有标签中 name 属性都被修改!

以上三类共计 350+ 文件被修改。。。然后我就悲催地 使用 idea history 功能来一个一个文件地来恢复修改。

后来发现 git 有 revert 功能,于是使用revert 将大部分改动恢复了,剩下一些情况稍复杂的自己一个个改了回来。

尽管如此,最后发现也耗费了我将近一个半小时的时间。

 


对于这次的事故,我后来仔细想了想,大概与使用快捷键有关:频繁重命名,根据经验直接do refactor,没有看清楚更改的范围。自从这次操作后,我在重命名变量时,一般都会在弹出菜单 -> refactor -> rename 去做,这样虽然操作变得繁琐,但是增加了成本后,重命名时就会变得更小心,看清了在确定。

  相关解决方案