【发布时间】:2011-01-15 21:53:22
【问题描述】:
我正在使用 SVN 版本。
我尝试提交并收到此消息:
提交失败(详情如下): '/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf' 计划添加,但 不见了
我想这是因为我在 repo 中添加了文件,然后通过文件系统删除了它们。
我想让它简单地记下我的更改,并将更改应用到 repo。
我怎样才能解决这个问题?
【问题讨论】:
我正在使用 SVN 版本。
我尝试提交并收到此消息:
提交失败(详情如下): '/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf' 计划添加,但 不见了
我想这是因为我在 repo 中添加了文件,然后通过文件系统删除了它们。
我想让它简单地记下我的更改,并将更改应用到 repo。
我怎样才能解决这个问题?
【问题讨论】:
我不确定您要做什么:如果您通过添加文件
svn add myfile
您只是告诉 svn 将此文件放入您的存储库中当您进行下一次提交时。在您输入之前,存储库没有任何变化
svn commit
如果您在提交之前删除了文件,svn 将其记录在其记录中(因为您添加了它)但无法将其发送到存储库,因为该文件不再存在。
因此,要么您想将文件保存在存储库中,然后将其从工作副本中删除:在这种情况下,请尝试取回您的文件(从垃圾箱中?),然后通过提交并删除文件
svn delete myfile
svn commit
如果你想撤消add 并把文件扔掉,你可以去一个
svn revert myfile
告诉svn(在这种情况下)撤消添加操作。
编辑
抱歉,我不知道您正在使用 Max OSX 的“版本”GUI 客户端。因此,要么尝试使用 GUI 恢复包含目录,要么跳入冷水并启动隐藏的 Mac 命令 shell :-)(它在德语 OSX 中称为“终端”,不知道如何用英语显示它版本...)
【讨论】:
svn rm 文件,即使它在目录中不存在。
svn add * 会自动添加所有新的未版本控制的文件,svn commit 会立即将这些更改保存到存储库中。 Afaik 没有等效的删除操作,所以如果你删除文件,你必须手动调用svn rm。
svn rm,即使使用--force 也不起作用-它说does not exist。所以svn revert 是正确的做法。
我在显示相同消息的版本时遇到了同样的问题。我只是右键单击有问题的文件,然后从右键菜单中选择“还原...”,一切都很好。
Basically Versions(实际上是Subversion)认为你还想添加该文件,但它找不到它,因为你在文件系统中删除了它。 Revert 选项告诉 Subversion 忘记添加它。
【讨论】:
添加一个文件,然后删除它是一种被认为是错误的操作——SVN 就是这样告诉你的。你告诉它期待一些文件数据,然后在你提交时不提供它,红灯闪烁,警报器响起!
答案是撤消添加,或者提交文件,然后使用“svn rm”将其从文件系统和 repo 中删除。
【讨论】:
This 解决了我的类似问题。我用它来恢复更改,然后我添加了所有内容并在终端中提交了更改
svn add folder_path/*
svn commit -m "message"
【讨论】:
避免使用 Xcode 重命名文件夹引用中的文件。如果您使用 Xcode 重命名文件,它将被标记为提交。如果您稍后在提交之前将其删除,最终会出现此错误。
【讨论】:
我刚刚从 VS 中删除了文件,然后从“资源库资源管理器”中将文件复制到了工作副本。
【讨论】:
如果您使用的是 TortoiseSVN……
从“所做的更改”部分的提交窗口中,您可以选择所有有问题的文件,然后右键单击并选择删除。完成提交,文件将从计划添加中删除。
【讨论】: