AnkhSVN - 在Visual Studio内更改文件名称(包括大小写)

12

当我尝试在VS中将文件Class1.cs重命名为class1.cs并尝试通过ankhSVN提交项目时,会出现两个错误:

[...\Class1.cs] is already under version control.


The commit processing can't commit [...\Class1.cs], because it is not managed by Subversion. Maybe you should refresh the status after applying changes with another client?

我删除了class1.cs,添加了一个新的class1.cs,尝试提交它,但仍然收到相同的错误。我该如何解决这个问题,以便我可以更改大小写并仍然能够提交?我知道Windows是不区分大小写的,但难道没有(简单)方法可以解决吗?

在尝试使用ankhSVN进行更多操作后,我尝试将文件以其原始名称提交(因此至少可以将其恢复到版本控制),结果收到:

An internal error occured. Commit failed (details follow):  Cannot commit: '[...]\Class1.cs' because it was moved to '[...]\class1.cs' which is not part of the commit; both sides of the move must be committed together

SharpSvn.SvnIllegalTargetException...

我正在使用:

  • Windows 7 64位操作系统
  • Visual Studio 2012版本
  • TortoiseSVN 1.8.4版本
  • ankhSVN 2.5.12266.473版本
4个回答

12
您可以在Visual Studio + ankhSVN中完成此操作。
  1. 复制/粘贴要重命名的文件并将其粘贴到同一文件夹中。

  2. 将文件从“Copy Of xxxx”重命名为所需的新名称。

  3. 删除旧文件。

  4. 右键单击包含这两个文件的文件夹,对整个文件夹执行svn提交操作。

就是这样!


2
简单来说,你需要做的唯一一件事就是从Windows资源管理器中提交父文件夹。其他所有操作,比如重命名和复制,都可以在VS IDE中完成。 - Arman
1
这完全是个问题。VS和ankhSVN怎么可能不支持在IDE中重命名文件... - omegacore
@user1422843 我认为这更多是svn问题。https://dev59.com/_WQm5IYBdhLWcg3w2SD3 - Selwyn

3
我用以下步骤解决了问题,但仍希望有更简单的方法。
  • 我通过使用VS确保项目中没有class1.cs或Class1.cs
  • 现在,在Windows资源管理器中:
    • 我使用TortoiseSVN提交了Class1.cs(因为我删除了它,参见问题)
    • 我使用TortoiseSVN的重命名选项将其命名为class1.cs
    • 我使用TortoiseSVN提交了class1.cs
  • 现在,在VS中,我展示了所有文件,将class1.cs包含在项目中,并通过ankhSVN提交了项目

2
我曾经遇到过同样的问题,我进入了出现问题的文件夹,右键单击该文件并选择TortoiseSVN --> add。然后会弹出一个对话框,提示该文件已存在,是否要:

1)更改大小写 2)添加文件(可能会导致Windows出现问题)

我当然选择了#1,然后在VS中刷新状态,问题就解决了。然后我提交了更改,一切恢复正常。


这个解决方案解决了我的问题!在完成第一步之后,蓝色图标变成了黄色,然后我就可以提交新文件了。谢谢! - Behzad

0

在Windows资源管理器中,导航到文件最初所在的文件夹(在它们被移动/重命名之前)

右键单击该文件夹,并从Subversion菜单中访问您的Repo浏览器。

将原始文件从Repo拖放回您的项目文件夹中。

在Visual Studio中,打开“工作副本资源管理器”,并导航到您刚刚拖放文件的目录。

您应该会看到文件名称旁边有红色的“x”,表示它们已被删除。

选择所有文件,右键单击它们,然后选择“添加到待处理更改”

之后,您就可以提交您的更改了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接