Я использую VS2008/VS2010 с Resharper 5, 1.6.8.19260-x64 TortoiseSVN, и AnkhSVN 2.1.8420.8. Большинство операций, которые я делаю в Visual Studio, отражается прекрасное в SVN, однако, переименовывание папок в проекте может вызвать проблемы, когда я пытаюсь отправить свои изменения. Также все пространства имен в исходных файлах C# под переименованной папкой должны быть обновлены для отражения смены имени.
Что лучший способ состоит в том, чтобы переименовать основную папку проекта или какие-либо sub папки и гарантировать, что нет никаких проблем с SVN? Это должно быть сделано вне Visual Studio?
Что лучший способ состоит в том, чтобы обновить все изменения пространства имен? Действительно ли поиск/замена является единственным путем?
Там какие-либо лучшие практики расценивают имена папок и их содержание?
Да, переименовывайте вне Visual Studio.
Используя TortoiseSVN в проводнике Windows, переименуйте нужную папку через контекстное меню TortoiseSVN. Проект в Visual Studio обнаружит изменения на диске и попросит вас перезагрузить.
Вы также можете исключить из проекта в Visual Studio, затем переименовать и снова включить новый путь.
Изменить: Согласно @Sander Rijken ниже, AnkhSVN отслеживает переименование и проверяет, правильно ли зарегистрировано переименование в рабочей копии svn.
Если у вас не установлен AnkhSVN в дополнение к TortoiseSVN, но это не сработает, и вы должны сделать, как я сказал выше.
Обычно, когда мне нужно выполнить переименование папки, я сначала переименовываю папку с помощью tortoiseSVN, затем исключаю/включаю папку в VS и, наконец, переименовываю все пространства имен (с Resharper это просто вопрос перехода от файла к файлу и Alt+Enter(ing) на директиве пространства имен для переименования по мере необходимости.
Вы должны иметь возможность переименовывать папки внутри Visual Studio при запуске AnkhSvn. Также при использовании инструментов рефакторинга, таких как Resharper, для изменения пространства имен в соответствии с новым именем папки, у меня все работает так, как ожидалось.