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

StackOverflow https://stackoverflow.com/questions/420013

  •  05-07-2019
  •  | 
  •  

将文件从 old.package移动到new.package 时,我想要做两件事:

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

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

有帮助吗?

解决方案

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

其他提示

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

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

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

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top