1

我正在开发一个Java项目,Eclipse我曾经SVN在存储库中提交它的各种版本。但是我注意到,当我删除一个类然后提交项目时,旧类仍然包含在项目的最新提交版本中。有什么方法可以防止SVN维护已经被实际删除的类?

更新:当我重命名一个类然后我尝试提交项目的新版本时,也会出现同样的问题。它保留了两个类并存储在存储库版本中。我怎样才能防止它存储旧的?我非常感谢任何帮助,因为无论如何我都不希望将它与旧课程一起存储。

4

3 回答 3

0

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

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

于 2013-10-13T22:36:23.650 回答
0

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

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

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

在 Eclipse 中使用 SVN 插件(例如,Subclipse 或 Subversive)也可以做到这一点。如果您随后使用 Eclipse 删除或重命名文件,插件也会执行该操作并将其传递给 SVN。

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

于 2013-10-14T14:35:40.297 回答
0

You need to also delete the class in svn as well, something like:

$ svn rm path/to/class.java

You can also remove the file using Eclipse, assuming that you have the svn plugin installed. Make sure that you select the file when you are committing your changeset, otherwise the deletion won't be sent to the server.

Update: Answering the update to the question

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

Or, as Martin mentioned, ensure that your have your subversion plugin in eclipse properly configured, then it will also do the svn rm and svn mv commands for you.

于 2013-10-13T20:33:52.737 回答