【问题标题】:Why does Subclipse only work in some Ecliplse workspaces and not others?为什么 Subclipse 只能在某些 Eclipse 工作区中工作,而不能在其他工作区中工作?
【发布时间】:2010-10-24 06:47:14
【问题描述】:

我正在使用带有 Subclipse 的 Eclipse 进行一些 perl 开发。 Subversion 存储库的设置如下:

  • /repos /repos/dev/
  • /repos/dev/crontabs
  • /repos/dev/crontabs/script1
  • /repos/dev/crontabs/script2
  • /repos/dev/daemons
  • /repos/dev/daemons/script3
  • /repos/dev/daemons/script4
  • /repos/dev/tools
  • /repos/dev/tools/script5
  • /repos/dev/tools/script6

在文件系统上,我将整个 /repos/dev 树在本地检查到 ~/dev,并创建了三个 Eclipse 工作区,每个位于“~/dev/crontabs”、“~/dev/daemons”和“〜开发/工具”。

这就是事情变得奇怪的地方。在守护进程和工具工作区中,SVN 可以正常工作。我看不到 .svn 目录,我可以在 TEAM 对话框中执行所有各种 SVN 操作(例如提交、更新、清理)。但是,SVN 不能在“crontabs”工作区中工作。 .svn 目录是可见的,并且没有任何 SVN 对话框选项可用。

在所有目录中,我都可以使用命令行 SVN 工具,一切正常。

这里有更多细节。

  • Mac OS X 10.5.6
  • Eclipse 平台 - 版本:3.4.2 - 构建 ID:M20090211-1700
  • SVNKit 库 1.2.2.5405
  • SVNKit 客户端适配器 1.5.6.1
  • 子剪辑 1.4.8
  • 史诗 0.5.46

我已尝试删除 deameons .metadata 和 realted .profile 文件以尝试将其清除并开始一个新的工作区,但这没有用。

任何人以前见过这种类型的行为和/或知道如何让 SVN 命令在所有工作区中工作而不是仅在其中一些工作区中工作?

更新:我还应该提到 /dev 目录中还有很多其他我不使用 Eclipse 的资产。因此,我将命令行 SVN 工具与 Eclipse 中的 SVN 函数结合使用。最初使用命令行工具检查了所有内容,然后我只是使用 Eclipse 进行提交。让我感到困惑的是为什么它在两个子目录中工作,但在命令行 100% 工作时却不能在第三个子目录中工作。

【问题讨论】:

  • 仍在努力,但我越来越认为这是一个错误。
  • 而且,当然,我很可能在途中的某个地方自己搞砸了。如果没有进一步的研究,我无法解决这个问题。

标签: eclipse svn subclipse


【解决方案1】:

当您切换工作区时,其他工作区的所有设置等都会被忽略。

与其检出整个主干并创建 3 个与您的存储库结构一致的工作区,不如创建 3 个工作区并将存储库的相关部分检出为每个工作区的项目。

【讨论】:

  • 据我所知,我以相同的方式设置每个工作区。真正的主要事情只是将默认的 SVN 客户端调整为 SVNKit(因为它不会自动使用它)。我将在上面写另一个注释,但我将它与命令行工具结合使用。 /dev 目录中还有很多我没有工作区的东西。我希望能够保持顶级签出,而不必单独签出每个子目录(如果可能),因为这样更容易维护。如果我无法弄清楚,我将切换到单独的工作区。
【解决方案2】:

当您创建一个新项目并将文件导入其中时,Eclipse 不会假定项目是受版本控制的。您必须使用 Project's Team -> Share Project... 对话框明确告诉它。

一旦您选择了正确的目录,Eclipse 应该会告诉您该项目已经在该位置共享,但无论如何都要在 Eclipse 中为其激活 SVN 命令。

【讨论】:

  • 这让我觉得我有一个错误。当我尝试 Team -> Share Project 时,我收到一条消息:“此项目似乎包含 Subversion 元数据文件夹。如果继续,这些文件夹将被删除,Subversion 信息将丢失。为了让 Subclipse自动将项目重新连接到存储库,项目根文件夹需要包含 Subversion 元数据文件夹。很可能没有,或者您不会看到此消息。但是,在项目根目录和工作空间根目录中都有 .svn 目录(实际上是上一层)。
  • 嗯,我不确定发生了什么。因为我们在我工作的 Windows 环境中工作,所以我们更改了一些选项,以便 subversion 使用 _svn 文件夹而不是 .svn 文件夹。我们混合使用 Subclipse 1.4.x(用于 Subversion 1.5)和 TortoiseSvn 1.5.x。当几周前我的工作区损坏时(Java 自动完成功能停止工作),我不得不重新创建工作区时,我使用 Team -> Share Project 将子剪辑重新附加到这些项目。
  • 我会继续修改它,但我认为我看到的不是正常行为。特别是因为他们中的两个正在工作。我已经尝试删除树的整个工作区部分并从 SVN 拉回,但仍然没有运气。我认为这里有些问题。
【解决方案3】:

我不确定我是否完全遵循这一切。而且 Subclipse 插件不如 CVS 插件精致。但是,如果您将项目复制到工作区并且它包含 Subversion 上下文(.svn 文件夹),正如 Bemose 所指出的,这对 Subclipse 没有意义。

理论上,当您使用 Team/Share 并收到警告消息时,您可以批准,它会破坏现有的 .svn 文件并构建正确的新文件。如果你幸运的话,它甚至会起作用。 CVS 也是如此,但正如我所说,Subclipse 可能是个更大的问题。

最好的办法是使用 Eclipse subversion 透视图和“签出为 Eclipse 项目”选项将项目签出到您的工作区中。

如果您绝对需要从命令行构建项目目录,请使用 Subversion export 命令,而不是 checkout 命令。导出省略了“.svn”目录,因此 Eclipse 可以不受干扰地完成它的工作。但是,您必须执行 Team/Share 才能将导出的项目连接到 subversion 存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多