我正在使用Aptana开发ColdFusion网站.我们正在使用SVN进行版本控制.
我重命名了几个文件,现在我正在尝试提交其中一个,但是我收到以下错误:
'SVN Commit' has encountered a problem. org.apache.subversion.javahl.ClientException: Illegal target for the requested operation svn: Commit failed (details follow): svn: Cannot commit 'R:\myPath\My-New-File-Name.cfm' because it was moved from 'R:\myPath\My-Old-File-Name.cfm' which is not part of the commit; both sides of the move must be committed together
这似乎表明我需要同时提交先前的文件(已重命名)和新重命名的文件.如何提交不再存在的文件......?
在使用subversion的eclipse中,我能够通过在项目中的足够高级别的文件夹中执行Team-> synchronize来解决这个令人困惑的错误,该文件夹包含新旧文件名和位置.如果你移动并重命名了你的文件,或者如果你无法弄清楚究竟发生了什么,那么在项目的最高层同步也不会有什么坏处.
当我这样做时,旧版本的重命名文件出现在同步视图中.一旦我对它们使用"覆盖和提交",它们就会再次消失.此时,新的将最终正确提交.
添加一个旧名称的文件并执行提交,然后再次删除该文件做提交.
各种客户似乎比其他人更好地处理这个问题.
Visual Studio的AnkhSVN遇到此错误,无法处理它.
TortiseSVN(shell扩展)可以工作 - 它知道删除旧文件并添加新文件.
因此,如果你在Windows上,一个简单的解决方法就是使用Explorer中的TortiseSVN对目录进行提交(删除旧文件名并添加新文件名).
提交目录,而不是文件.
将目录视为包含其包含的文件列表的文本文件,然后您可以看到要成功提交,您需要更新目录本身,以便它可以删除旧条目并添加新条目.这将在SVN中显示为删除旧文件并添加新文件(即对目录进行2次更改,而不是对文件进行1次更改)
如果只想提交1个文件,则需要暂时将其他已更改的文件添加到忽略列表中.