1

我的 Java 项目在 Eclipse Indigo 中使用 SVN 时遇到了可怕的问题。

我不是业余爱好者,也不是专业程序员,但我听说版本控制系统对于严肃的项目有多么重要,我认为是时候学习如何使用它了。

现在我发现我无法承诺,无论我尝试什么。根据我所做的事情,我会遇到不同的错误。

我怀疑问题是由于我在“项目”>“属性”>“重构历史”中检查了“在项目文件夹而不是工作区中保留项目重构历史”框引起的,但我不确定。但是自从我这样做后,我收到一条错误消息,提示“svn: Path '.settings' not present”错误。我再次尝试,取消选中 .settings/org.eclipse.ltk.core.refactoring.prefs 框。这次我在尝试提交时遇到了另一个错误,“路径'gamecore'不存在”。('gamecore' 是项目中的一个根级包,我将大部分类放在其中,直到它们可以移动到更合适的地方。)

我尝试了几种摆弄我已更改的项目首选项的排列方式,并在尝试提交时取消选中某些文件。都失败了。

无奈之下,我将我更改为文本文件的源文件剪切 n' 粘贴,恢复到我以前的版本,然后将新版本剪切 n' 粘贴到旧版本之上。这次我得到“svn: File '/Space Game/.refactorings' is out of date”。

所以我处于一个位置,无论我做什么,我都无法承诺。在这一点上,我正在考虑删除整个存储库并从我的工作区导入(我之前不小心删除了项目时所做的事情,认为存储库中有重复项。)

我在网上搜索了我遇到的错误,我发现的所有线程似乎都假设比我拥有更多的版本控制知识。大多数包括我无权访问的 bash shell 命令。

我的问题是:1)这是最好的行动方案吗?2)还有另一种不那么激烈的恢复方式吗?3)如何防止此错误再次发生?

我将 Eclipse Indigo 与 Subversive SVN Connectors 2.2.2、Subversive SVN Team Provider 0.7.9 和 SVNKit 1.3.5 Implementation 2.2.2 一起使用。

4

1 回答 1

1

这是因为您将 eclipse 元数据检查到源代码管理中,然后通过更改这些设置来移动它。

  1. 因此,首先进行更新以获取元文件。如果您观看 svn 控制台,您会看到如下内容:Restoring FILENAME
  2. 在您将它们取回并假设您的项目仍设置为将元数据放在单独的文件夹中之后,您可以对它们执行 svn delete 并提交删除。
  3. 在所有 Eclipse 元数据上设置 svn:ignore,即:
    • 。项目
    • .settings
    • .buildpath
    • .重构

如果我是你,我会关闭 eclipse 并从命令行执行所有这些操作,这样它就不会混淆。:

cd /path/to/project/root
svn up
svn rm .project .settings .buildpath .refactorings
svn commit .project .settings .buildpath .refactorings -m "Deleting eclipse metadata."
svn propedit svn:ignore .
# this will open an editor ignored files are one per line  so your file should look like
# the following without the "#" signs
#
# .project
# .settings
# .buildpath
# .refactorings

svn commit . -m "Adding ignores to eclipse metadata files."
于 2012-06-23T20:53:15.293 回答