Изменение имен папок в Visual Studio при использовании SVN

Я использую VS2008/VS2010 с Resharper 5, TortoiseSVN 1.6.8.19260-x64 и AnkhSVN 2.1.8420.8. Большинство операций, которые я выполняю в Visual Studio, хорошо отражены в SVN, однако переименование папок в проекте может вызвать проблемы, когда я пытаюсь представить свои изменения. Также необходимо обновить все пространства имен в исходных файлах С# в переименованной папке, чтобы отразить изменение имени.

Каков наилучший способ переименовать основную папку проекта или любые подпапки и гарантировать отсутствие проблем с SVN? Должно ли это быть сделано за пределами Visual Studio?

Каков наилучший способ обновить все изменения пространства имен? Является ли поиск/замена единственным способом?

Есть ли какие-либо рекомендации относительно имен папок и их содержимого?

Ответ 1

Да, ваше переименование за пределами Visual Studio.

Используя TortoiseSVN в проводнике Windows, выполните переименование через контекстное меню TortoiseSVN в соответствующей папке. Проект в Visual Studio обнаружит изменения на диске и попросит вас перезагрузить.

Вы также можете сделать исключение из проекта в Visual Studio, а затем переименовать, а затем повторно включить новый путь. Забастовкa >

Изменить: В соответствии с @Sander Rijken ниже, AnkhSVN отслеживает переименование и гарантирует, что переименование будет правильно зарегистрировано в рабочей копии svn.
Если у вас нет AnkhSVN, установленного в дополнение к TortoiseSVN, хотя это не сработает, и вы должны сделать то, что я сказал выше.

Ответ 2

Вы должны иметь возможность переименовывать папки внутри Visual Studio при запуске AnkhSvn. Также при использовании инструментов рефакторинга, таких как Resharper, чтобы изменить пространство имен в соответствии с именем новой папки, все работает так, как ожидалось для меня.

Ответ 3

Модуль Агент SVN реализует интерфейс MS-SCCI, который позволяет ему интегрироваться с Visual Studio.

Поскольку MS-SCCI определяет операцию переименования файлов, это означает, что агент SVN может выполнять переименование файлов из среды IDE, как и любой плагин, который также реализует MS-SCCI.

Ответ 4

То, что я обычно делаю при выполнении переименования папок, сначала переименовывает папку с помощью tortoiseSVN, затем Исключая/Включая папку в VS и, наконец, переименование всех пространств имен (с помощью Resharper это просто вопрос перехода файла по файлу и Alt + Ввести (ing) в директиву пространства имен, чтобы переименовать соответствующим образом.