Проблема с переименованием файлов состоит в том, что, если Вы хотите использовать в своих интересах рефакторинг Visual Studio, действительно необходимо сделать это из Visual Studio.
Но большинство (не все*) система управления версиями также хочет быть теми делающими переименование.
Одно решение состоит в том, чтобы использовать интегрированное управление исходным кодом, но это не всегда доступно, и в некоторых случаях довольно неуклюже.
Я лично был бы более удобным управлением исходным кодом использования отдельно, за пределами Visual Studio, но я не уверен, как справиться, этот вопрос файла переименовывает.
Так, для тех из Вас, что Visual Studio использования, какое управление исходным кодом Вы используете? Вы используете интеграцию VS (который?) и иначе, как Вы разрешаете эту проблему переименования?
(* мерзавец достаточно умен для разработки его для себя),
Mercurial обычно предпочитает выполнять переименование с помощью hg rename
, однако он также может обнаруживать переименование из внешнего источника с помощью hg addremove -s 100
(или меньше 100, если вы хотите сопоставить переименование с изменениями), так что ясно, что вы можете позволить VS выполнить переименование и получить постоянную поддержку с помощью addremove.
Мы используем SVN (TortoiseSVN, если быть точным), и меня всегда беспокоит проблема переименования. Самое простое решение, которое я нашел, - это удалить файлы из проекта, переименовать их через TSVN и добавить обратно в проект. Вы должны вручную обновить включения для переименованных файлов заголовков, но это относительно легко сделать с помощью функции поиска и замены.
Я использую SVN (TortiseSVN в качестве клиента) и использую команду Repair Move из фиксации диалог сильно. Это позволяет мне переименовывать файлы в VS и разрешать переименование, когда я готов совершить фиксацию, чтобы сохранить историю версий.
Что касается использования интеграции VS, я, как и вы, считаю всю интеграцию VS неуклюжей и не использую ее.
Мы используем Team Foundation Server, и он работает без проблем. Я также обнаружил, что переход к использованию полностью интегрированного клиента улучшил мой рабочий процесс, поскольку мне не нужно переключаться между приложениями только для выполнения тривиальных задач.