SVN(Subversion)问题“计划添加文件,但文件丢失”-使用版本


94

我正在使用Versions for SVN。

我尝试提交并得到以下消息:

提交失败(详细信息如下):'/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf'已计划添加,但丢失

我想这是因为我已经向回购中添加了文件,然后通过文件系统删除了它们。

我只想记下我的更改,然后将更改应用于回购。

我该如何解决?

Answers:


120

我不确定您要做什么:如果您通过添加文件

svn add myfile

您只告诉svn 在下一次提交时将此文件放入您的存储库。键入之前,存储库没有更改

svn commit

如果在提交之前删除文件,svn则将其记录在记录中(因为已添加),但由于文件不再存在而无法将其发送到存储库。

因此,您既可以将文件保存在存储库中,然后从工作副本中删除它:在这种情况下,请尝试取回您的文件(从回收站?),然后通过以下方式提交并删除文件:

svn delete myfile
svn commit

如果您要撤消add并将文件丢掉,则可以

svn revert myfile

告诉svn(在这种情况下)撤消add-Operation。

编辑

抱歉,我不知道您使用Max OSX的“版本” GUI客户端。因此,要么使用GUI尝试在包含目录中还原,要么跳入冷水中启动您隐藏的Mac命令外壳:-)(在德语OSX中被称为“终端”,不知道如何用英语启动它)版...)


2
这里的问题是他使用GUI。如果他仍然可以使用命令行,svn rm即使目录中不存在该文件,他也可以使用该文件。
Pikrass

好的,我不知道OSX的“版本”客户端。无论如何,他应该能够使用“还原”,不是吗?这将适用于Windows上的TortoiseSVN。
MartinStettner'2

稍后进行svn清理和svn rms ...感谢您的帮助。有没有办法告诉svn,“看,我通过操作系统的默认文件管理器添加了一些文件,现在,我希望此仓库的当前状态是此文件夹中的内容……现在让它发生...不要告诉我这些文件可以做什么,不能做什么,但是是的,请为我跟踪所有这些信息。”?
迈克(Mike)2010年

1
一个svn add *自动将所有新的,未受控的文件中,svn commit立即将这些更改存储库。Afaik没有等效的删除操作,因此,如果删除文件,则必须svn rm手动调用。
MartinStettner'2

仅供参考,我也遇到了这个问题svn rm,即使--force无法正常工作-它说does not exist。所以svn revert在这里做正确的事。
米歇尔·穆勒

24

我对显示相同消息的版本也遇到了同样的问题。我只需右键单击有问题的文件,然后从右键单击菜单中选择“还原...”,一切都很好。

基本上,版本(实际上是Subversion)认为您仍要添加文件,但是找不到,因为您已在文件系统中将其删除。还原选项告诉Subversion忘记添加它。


我收到此错误是因为我已从应用程序层次结构中删除了一个文件夹。我只是添加了具有相同名称的空文件夹,它可以正常工作。
瑜伽士

10

添加文件,然后将其删除是一种错误操作,因此SVN会告诉您。您告诉它期望一些文件数据,然后在提交时不提供数据,红灯闪烁并且警报器熄灭!

答案是撤消添加,或者提交文件,然后使用“ svn rm”将其从文件系统和存储库中删除。


我是从Xcode那里得到的,我在其中添加了一个文件并且做错了什么或什么,然后告诉Xcode删除(移至回收站)。不幸的是,Xcode处于这种状态,尽管确实删除了文件,但它并没有为我提供svn的rm ...
chadbag 2013年

3

解决了我类似的问题。我用它还原了更改,然后添加了所有内容并在终端中提交了更改,

svn add folder_path/*
svn commit -m "message"

2

避免使用Xcode重命名文件夹引用中的文件。如果使用Xcode重命名文件,则将其标记为提交。如果稍后在提交之前将其删除,则最终将出现此错误。


0

我只是从VS中删除了文件,然后从“资源库资源管理器”中将文件复制到了工作副本中。


0

如果您使用的是TortoiseSVN ...

在提交窗口的“所做更改”部分中,可以选择所有有问题的文件,然后右键单击并选择“删除”。完成提交,文件将从计划的添加中删除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.