在没有bving svn的情况下,方便地将一个类移动到eclipse中的另一个包

时间:2009-01-07 11:45:10

标签: java eclipse svn move

old.package to new.package移动文件时,我希望发生两件事:

  1. 更新对该类的所有引用(在项目的所有文件中),以便使用新包
  2. svn move old/package/Foo.java new/package/Foo.java
  3. 我在Eclipse Ganymede中使用颠覆。当我将文件从一个包拖到另一个包时,所有引用都会更新,文件在文件系统上移动。但是SVN没有意识到这一点,因此svn move old/package/foo.java new/package/Foo.java命令在old/package/Foo.java不存在时显然不起作用(因为eclipse已经移动了它)。

    有没有办法让eclipse做重构但是使用svn来移动文件系统上的文件?我希望我只是遗漏了一些明显的东西: - )

5 个答案:

答案 0 :(得分:16)

我使用Subclipse并且支持支持在包之间移动文件

答案 1 :(得分:3)

我一直在试验,并认为我找到了方法:

1)Tortoise-使用右键单击拖动上下文菜单(或任何您想要的SVN方法)移动文件。

2)使用windows文件系统将其移回。

3)在Eclipse中拖动文件以更新所有引用。

4)提交 - 它显示为删除/添加,但它保存了历史记录,它确实在一次提交中更改了包引用(保持每个提交都可构建)。

老问题,但我一直回到它,所以这是我的文档!

答案 2 :(得分:1)

Yuval是对的。这听起来像是颠覆性的(非常不幸!)缺陷。 (没有Subversive的经验我不能肯定地说)Subclipse绝对可以通过在Eclipse中连接到正确的API来正确处理它。

答案 3 :(得分:0)

您无法同时执行这两项操作,因为单独移动文件是不够的。需要修改这些文件,以便您的代码可以再次编译。所以使用Eclipse进行重构,让Subclipse在移动后完成它的魔法(删除旧文件,添加新文件)。

答案 4 :(得分:-1)

如果让Eclipse进行重构,那么肯定会在提交根目录时对SVN应该提取的实际文件进行更改吗?我不认为移动会削减它,SVN将不得不从原始目录中获取该文件,但是从新目录重新添加它。这是一个棘手的情况,我不知道最好的方法是什么,我只是进行重构,然后亲自提交root,即使这不是一个动作。