Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse中内置类dir之后的红色感叹号_Eclipse_Svn - Fatal编程技术网

Eclipse中内置类dir之后的红色感叹号

Eclipse中内置类dir之后的红色感叹号,eclipse,svn,Eclipse,Svn,首先,我的构建路径没有问题,在“问题”窗口中也没有关于此错误的问题。发生的情况是: 我从SVN签出一个项目 然后我建立这个项目 SVN“版本”和链接从类和生成目录中删除(并显示红色) 我无法再提交整个项目,因为我遇到以下错误: svn: Commit failed (details follow): svn: Working copy 'C:\Users\<me>\Documents\eclipseSDK\<project>\classes' is missing or

首先,我的构建路径没有问题,在“问题”窗口中也没有关于此错误的问题。发生的情况是:

  • 我从SVN签出一个项目
  • 然后我建立这个项目
  • SVN“版本”和链接从类和生成目录中删除(并显示红色)
  • 我无法再提交整个项目,因为我遇到以下错误:

    svn: Commit failed (details follow):
    svn: Working copy 'C:\Users\<me>\Documents\eclipseSDK\<project>\classes' is missing or not locked
    
    svn:提交失败(详细信息如下):
    svn:缺少或未锁定工作副本“C:\Users\\Documents\eclipseSDK\\classes”
    
  • 它没有丢失,只是在构建过程中被“刷新”

我还尝试删除SVN端的目录,但是红色箭头仍然出现,并且提交会抛出一个错误-即使这些目录不再是已检查资源的一部分

此外,基本上,任何“团队”菜单选项都将不再适用于这两个目录,如果我尝试使用团队>添加到版本控制,则资源窗口中不会显示任何内容


我甚至不知道我是否关心红色的感叹号,而只是从SVN过程中获取这两个dir。正如我所说,我甚至已经删除了SVN端,因此它们不再存在。

您编译的类文件是Subversion存储库的一部分吗?如果是这样,从SUBVERSION中除掉他们

很抱歉这样的尖叫,但是可以构建的文件(比如类和jar文件)不应该存储在版本控制中。这根本没有道理

源代码管理允许您查看更改的历史记录。您可以看到谁在源代码中做了哪些更改,但在类文件或JAR中不能这样做。源代码管理允许您分支和合并更改。类文件不能这样做。而且,它们很快就会变质。没有人关心上个月构建的类文件

最大的问题是规模。二进制文件差异不大(许多版本控制系统甚至不尝试)。假设每次生成时都要生成15兆字节的类文件。这可能意味着每次至少要向您的存储库添加12兆字节。在一年内,您可能会向存储库中添加1 GB。你可以很容易地得到绝大多数(我的意思是在你的源代码库的90%范围内)都是编译代码。编译代码没有人关心。编译代码不能帮助你理解你的开发历史。编译代码阻塞了你的存储库

转到您的类目录,并从该目录上的团队菜单执行还原。您将丢失所有更改,但又怎样?它们不应该在那里。这将设置一些设置,以便您至少可以提交更改

然后,从Subversion和commit中删除该类目录及其所有内容。Eclipse在生成时将创建该目录,您可以在编译代码之前在Ant的构建文件中创建该目录。然后,您应该在目录父目录上设置一个
svn:ignore
属性,以防止人们签入classes目录

如果您需要存储jar文件以供其他项目使用,请使用发布存储库。事实上,可以使用Maven存储库,如Artifactory或Nexus。您不必使用Maven。Ant可以使用Ivy从Maven存储库获取文件,也可以使用URL根据需要通过Ant中的
wget
任务下载文件



好的,我从本地删除了[build&Class],从SVN删除了[build&classes]。对一个文件做了一个小的编辑,只是为了能够运行Commit——这很好

那很好

本地和SVN都是同步的。生成和类是(并且曾经是)ANT生成文件的一部分,因此再次运行生成。生成和类重新出现(这次是?的),并添加到SVN:ignore

任何不在存储库中的文件都会显示一个问号。如果将
svn:ignore
属性添加到包含
classes
sync
build
的父目录中,这些问号将消失

进行了另一次文件更改,但现在我无法提交整个项目,因为我现在收到了更多/不同的错误(例如“过期”)

过期意味着有人在某处修改了存储库中的文件并提交了该文件。更改很可能是您删除的
*.class
文件之一。您必须在提交之前进行更新。当您进行更新时,您可能会看到在更改类文件的情况下发生了很多冲突,但是您已将其删除。请解决这些更改,更新,然后再次提交


顺便说一句,我有一个在这种情况下很有用的方法。首先,它可以防止人们将
classes
目录添加到存储库(以及它下面的任何文件)。其次,它可以确保正确设置了
svn:ignore

尝试清理您的工作副本,也不要提交classes文件夹或任何工件,只需将其添加到svn ignore感谢A4L,但svn:ignore变灰。我在本地和存储库中尝试了所有删除/创建排列,但该选项从未显示为“活动”。您不能忽略已提交到Subversion的目录。这就是为什么svn:ignore变灰的原因。好的,我从本地删除了[build&Class],并从svn中删除了。对文件进行了一次小的编辑,只是为了能够运行Commit-这很好。本地和svn都是同步的。build&Class是(并且是)作为ANT build文件的一部分,因此再次运行build。build&classes重新出现(这次是?),并添加到svn:ignore。进行了另一个文件更改,但现在我无法提交整个项目,因为我现在遇到了更多/不同的错误(例如“过期”)。但是,您帮助我解决了最初的问题,我修复了build/classes dirs,这很好-谢谢!请参阅我在回答末尾的其他评论。非常感谢-这些步骤都很有帮助,因为现在它似乎工作得很好。跳