我正在使用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
这似乎表明我需要同时提交前一个文件(已重命名)和新重命名的文件。如何提交不再存在的文件......?
答案 0 :(得分:84)
提交目录,而不是文件。
将目录视为包含其包含的文件列表的文本文件,然后您可以看到要成功提交,您需要更新目录本身,以便它可以删除旧条目并添加新条目。这将在SVN中显示为删除旧文件并添加新文件(即对目录进行2次更改,而不是对文件进行1次更改)
如果只想提交1个文件,则需要暂时将其他已更改的文件添加到忽略列表中。
答案 1 :(得分:12)
各种客户似乎比其他客户更好地处理这个问题。
AnkhSVN for Visual Studio遇到此错误,无法处理。
TortiseSVN(shell扩展)可以工作 - 它知道删除旧文件并添加新文件。
因此,如果您使用Windows,可以轻松解决此问题,即使用Explorer中的TortiseSVN对目录进行提交(删除旧文件名并添加新文件名)。
答案 2 :(得分:7)
添加一个具有旧名称的文件并执行提交,然后再次删除该文件执行提交。
答案 3 :(得分:6)
在使用subversion的eclipse中,我能够通过执行一个Team->在项目中足够高级别的文件夹中同步来解决这个令人困惑的错误,该文件夹包含新旧文件名和位置。如果您移动并重命名了文件,或者如果您无法弄清楚究竟发生了什么,那么在项目的最高层进行同步就不会有什么坏处。
当我这样做时,旧版本的重命名文件出现在同步视图中。一旦我使用"覆盖并提交"在他们身上,他们又消失了。此时,新的将最终正确提交。
答案 4 :(得分:1)
有可能重命名其中一个文件。
查看错误中的文件名,看看它是否与您的文件匹配。
如果文件名不匹配,请将文件重命名为错误中的文件并提交您要提交的所有文件。 在此之后,您可以重命名文件并再次提交。
答案 5 :(得分:1)
svn commit' R:\ myPath \ My-New-File-Name.cfm' ' R:\ mypath中\我的,老文件的Name.cfm' -m"消息"
适合我。您还需要包含已删除的文件。
答案 6 :(得分:0)
对于Visual Studio 2015,我绊倒了Ankh SVN的修复程序。在我的情况下,错误是由于在开发期间重命名“Form1.cs”(并且可能正在移动它)。这导致旧的和新的.resx文件出现问题。
希望这适合你。
答案 7 :(得分:0)
如果您正在使用IntelliJ IDEA并使用TortoiseSVN进行提交,有时会发生IDEA未删除该文件夹而Subversion发生此错误。
在这种情况下,这意味着“请,请不要提交您标记为已删除的文件夹/文件”
答案 8 :(得分:0)
sudo svn rm offendingfile --force
sudo svn commit -m''
完成
答案 9 :(得分:-1)
如果事情真的搞砸了,最简单的解决方案是从存储库中删除该文件夹,然后以当前形式将其添加回来。
SVN擦除并替换:
答案 10 :(得分:-2)
TortiseSVN 在Windows资源管理器中打开该文件。 选择文件,右键单击,使用 TortiseSVN - > unversion并添加到忽略列表
然后文件将摆脱SVN,成为普通文件。 因此,您可以执行操作将文件添加到SVN,然后提交。
我使用解决方案来解决问题。