Изменение имен папок в 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) в директиву пространства имен, чтобы переименовать соответствующим образом.