AnkhSVN - переименование (изменение его случая) файла внутри Visual Studio

Когда я пытаюсь переименовать файл Class1.cs в class1.cs внутри VS, а затем попытаюсь передать проект через 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

Ответ 1

Вы можете сделать это в Visual Studio + ankhSVN.

  • Скопируйте/Вставьте файл, который хотите переименовать, и вставьте его в ту же папку

  • Переименуйте файл из "Copy Of xxxx" в нужное новое имя.

  • Удалить старый файл

  • щелкните правой кнопкой мыши папку, в которой находятся оба файла, и выполните операцию svn commit во всей папке.

Вот оно!

Ответ 2

Я исправил его следующими шагами. Я все еще надеюсь, что есть более простой способ.

  • Я убедился, что class1.cs или Class1.cs больше не были частью проекта используя VS.
  • Теперь в проводнике Windows:
    • Я использовал Class1.cs, используя TortoiseSVN (потому что я удалил его, см. Вопрос)
    • Я использовал Переименовать Вариант TortoiseSVN, чтобы назвать его class1.cs
    • Я совершил class1.cs используя TortoiseSVN
  • Теперь внутри VS я показал все файлы, включая class1.cs в проекте и совершил проект через ankhSVN

Ответ 3

У меня была такая же проблема, и я вошел в папку с файлами, где возникла проблема, и щелкнул правой кнопкой мыши по файлу и сказал TortoiseSVN → add. Затем появилось диалоговое окно, в котором говорилось, что файл уже существует и мне нравится

1) Дело изменилось 2) Добавьте файл (вызывают проблемы с окнами)

Я, конечно, выбрал # 1, а затем обновил статус в VS, и он исправил проблему. Затем я совершил изменения, и я вернулся к нормальной жизни.

Ответ 4

В проводнике Windows перейдите к папке, в которой находятся файлы, изначально расположенные (до их перемещения/переименования).

Щелкните правой кнопкой мыши в папке и войдите в браузер Repo из меню Subversion.

Перетащите исходные файлы из Repo обратно в папку проекта.

В Visual Studio откройте "Рабочий обозреватель копирования" и перейдите в каталог, в который вы просто перетаскивали файлы.

Вы должны увидеть красные "x" рядом с именем файлов, указывающих, что они были удалены.

Выберите все файлы и щелкните правой кнопкой мыши, затем выберите "Добавить в ожидающие изменения"

После этого вы сможете зафиксировать свои изменения.