2009-02-05 50 views
12

我已发现,当我需要重命名一个Java类(和因此在源文件)或需要更改包名称(和因此移动源文件[S]),我可以:如何使用Eclipse重构工具并通过Subclipse与SVN保持同步?

  1. 使用好的和有用的Eclipse重构工具,这是很棒的,因为所有的级联任务都是为我完成的。然而,我随后与Subversion进行艰难的斗争,将更改复制回回购。
  2. 我可以先在Subversion中发出重命名/移动,更新我的本地,然后Eclipse中的重构工具不起作用。

任何人都可以建议一个更好的程序?

回答

10

自1.4.x发布以来,Subclipse处理得非常好。如果您有错误,请报告。在之前的版本中,它处理一些情况,但不处理其他情况这是由于SVN 1.5中修复的Subversion限制造成的。例如,在SVN 1.5之前,如果您重命名文件夹,则无法重命名文件夹中的文件(直到文件夹被提交)。这些事情都是非常常见的重构,而SVN会阻碍它。

虽然现在一切运作良好。

马克

3

你试过subversive?重构似乎对我来说工作得很好。

其实,我也试过subclipse,它似乎处理得很好,至少在1.4.7版本中。我只是尝试重命名一个包和一个类。 Eclipse将旧版本标记为已删除并添加了一个新的版本,计划添加到版本库中。

+0

嘿,谢谢你。我正在使用1.2.something。我保留升级的意义,但由于某种原因,这总是一件麻烦事。 – Nicholas 2009-02-05 20:55:24

-1

Subclipse将在Eclipse中重构时处理svn移动/重命名。

+2

他说它已经安装,它在问题的标题 – 2009-02-06 03:18:43

4

我不喜欢走进来,并说'你做它rong',但因为你的主题行提到Subclipse - Subclipse集成了Eclipse的重构工具。 Subversive也是如此。当你重新命名一个类时,它会为你在下面执行'svn mv'。您不应该尝试手动复制这些移动。

我不知道是否由于某种原因Subclipse没有附加到你的项目 - 如果它不知道你的项目是一个Subversion项目。那显然它什么都不会做。

如果你不使用Subclipse/Subversive ... start。 :)

+0

我使用的是Subclipse,但由于某种原因,它不会在我重构时发出任何SVN命令。其他“团队”操作在执行时显示在控制台中,但不包含重构。也许它是一个较旧的版本,或者它以某种方式被洗净。感谢您的回应。 – Nicholas 2009-02-05 21:03:34