如何删除使用SVN时不再使用的类?

时间:2013-10-13 20:30:56

标签: eclipse svn

我正在Java中处理Eclipse项目,我使用SVN在存储库中提交它的各种版本。但是我注意到,当我删除一个类然后我提交项目时,旧类仍然包含在项目的最新提交版本中。有没有办法阻止SVN维护实际删除的类?

更新:当我重命名一个类然后我尝试提交项目的新版本时出现同样的问题。它将类和存储都保存在存储库版本中。如何防止它存储旧的?我深深感激任何帮助,因为我不喜欢在任何情况下都把它与旧课程一起保存。

3 个答案:

答案 0 :(得分:0)

您还需要删除svn中的类,例如:

$ svn rm path/to/class.java

您也可以使用Eclipse删除该文件,假设您已安装svn插件。确保在提交变更集时选择文件,否则删除将不会发送到服务器。

更新:回答问题的更新

$ svn mv path/to/OldClass.java path/to/NewClass.java

或者,作为Martin mentioned,确保您在eclipse中正确配置了subversion插件,然后它也会为您执行svn rmsvn mv命令。

答案 1 :(得分:0)

如果像SubClipse一样使用Subversion for Eclipse,那么在Eclipse中删除文件将自动安排文件在下次提交时删除。

如果在Eclipse之外使用Subversion客户端,则必须使用该客户端删除该文件,然后在文件从工作副本中删除后在Eclipse中刷新项目。

答案 2 :(得分:0)

SVN需要知道SVN控制的所有文件和文件夹的任何更改(即置于版本控制之下)。检测文件更改很容易,但检测重命名和删除操作并不容易。如果您只删除文件(使用操作系统工具),SVN会警告您丢失文件。

对于这些操作,您必须使用相应的SVN commands。当使用所有这些SVN命令(首先)手动执行SVN时,最好学习SVN。

使用SVN客户端让您更轻松。例如,如果您使用TortoiseSVN,则可以右键单击文件并选择“SVN delete”来执行这两项操作,删除文件并将其传递给SVN。同样重命名。

通过在Eclipse中使用SVN插件(例如Subclipse或Subversive)来完成同样的操作。如果您随后使用Eclipse删除或重命名文件,该插件也将执行操作并将其传递给SVN。

记住一些事项:当删除或重命名文件(和/或文件夹)时 - 当然使用SVN命令 - 您应该在SVN提交之前进行SVN更新。否则,您可能会收到有关修订问题的错误。