我正在Java
中处理Eclipse
项目,我使用SVN
在存储库中提交它的各种版本。但是我注意到,当我删除一个类然后我提交项目时,旧类仍然包含在项目的最新提交版本中。有没有办法阻止SVN
维护实际删除的类?
更新:当我重命名一个类然后我尝试提交项目的新版本时出现同样的问题。它将类和存储都保存在存储库版本中。如何防止它存储旧的?我深深感激任何帮助,因为我不喜欢在任何情况下都把它与旧课程一起保存。
答案 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 rm
和svn 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更新。否则,您可能会收到有关修订问题的错误。