2011-09-08 133 views
0

我们使用maven和svn。这是一个错误的检查目标目录到SVN导致此错误。我从库中删除目标:试图忽略svn中的文件

svn delete -m "removing target folder" https://svn/svn/playground/denizatak/lrms-1.5-0_release_7/target/ 

Committed revision 19955. 

,并添加忽略关于目标属性:

svn proplist -v 
Properties on '.': 
    svn:ignore : target 

然而,当我尝试提交我得到这个消息的项目:

svn commit -m "licensing latest version - without target" 
svn: Commit failed (details follow): 
svn: Directory '/project/target/.svn' containing working copy admin area is missing 

当我检查目标文件的状态separetly我得到这个消息:

svn stat target 
svn: Directory 'target/.svn' containing working copy admin area is missing 

该项目的状态为:

svn st 
~  target 
M  some files 
M  pom.xml 

没有人有这种情况下,任何建议吗?

+0

你尝试过“svn update”和/或“svn clean”吗? –

+0

现在我尝试了,但我从svn清理得到了这个结果:svn:'/ project/target'不是工作副本目录 – lamostreta

回答

2

您是否尝试从项目文件夹中删除目标目录?作为预防措施,您可以先将它移到其他地方。

Subversion可能只是被目标似乎是工作副本(它有一个.svn子目录)的一部分,但既不是您的资源库中当前目录的一部分(您删除它)也没有定义作为svn:外部。

+0

工作正常!但是当我编译我的项目和maven时,会发生什么情况再次创建目标文件? – lamostreta

+1

正如你添加到svn:忽略不应该有进一步的问题。我认为这种情况是因为你在仓库上而不是在工作副本上执行了svn delete。在以下svn更新中,目标文件夹未标记为属于您的工作副本,但未删除。 –

+0

你是对的!非常感谢。 – lamostreta

0

您似乎已损坏或删除您的.svn目录,其中包含有关repo和本地目录之间链接的信息。

首先尝试'svn clean'来尝试重建这个,可能是'svn update'以便从回购中获取细节。如果失败了,最简单的方法(以及对错误信息给予我最大信心的方法)是签出新的工作副本,然后将更改后的文件(而不是.svn目录)复制到那里。然后签入。

我不确定关于svn st的结果,它意味着对象被改变了类型(例如,一个文件已经成为一个目录或类似的文件),我会期望它显示一个D用于删除,尽管我想你已经将一个属性添加到不再是源代码控制一部分的工作副本项目中,而这正是导致混淆的原因。我会将您的问题发布到svn users mailing list以查看这种工作流是否被称为错误。

+0

我试过svn cleanup: svn cleanup〜/ project svn:'/ project/target'is不是工作副本目录 我不确定使用更新。它用于更新工作副本并使其与存储库相等,对吗?如果是这种情况,我不能使用它,因为我已经对我的项目进行了修改,我不想放弃它们。 – lamostreta

+0

不,'svn update'将存储库更改合并到您当前的工作副本中。这并不会删除你的修改('svn revert'会这么做)。但是它也会从存储库中提取丢失的目录和文件。所以如果你意外地删除了一个完整的目录或文件,svn update只是“修复”了wc。 –

+0

我明白了。我尝试更新,但它返回:'代码'svn更新 svn:工作副本'。'锁定 svn:运行'svn cleanup'删除锁定(输入'svn help cleanup'查看详细信息)'code' – lamostreta