Переименование файлов: Visual Studio vs Version control

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

Но большинство (не все *) системы контроля версий также хотят, чтобы они выполняли переименование.

Одним из решений является использование интегрированного управления источником, но это не всегда доступно, а в некоторых случаях довольно неуклюже.

Мне было бы удобнее использовать источник управления отдельно, вне Visual Studio, но я не уверен, как управлять этим вопросом переименования файлов.

Итак, для тех из вас, кто использует Visual Studio, какой источник управления вы используете? Используете ли вы интеграцию VS (какой?) И в противном случае, как решить эту проблему переименования?

(* git достаточно умен, чтобы справиться с этим сам)

Ответ 1

Я использую SVN (TortiseSVN в качестве клиента) и использую команду Repair Move из диалога фиксации. Это позволяет мне переименовывать файлы в VS и разрешать переименование, когда я готов выполнить фиксацию истории версий.

Что касается использования интеграции VS, как и вы, я нахожу всю интеграцию VS неудобной и не использую ее.

Ответ 2

mercurial обычно предпочитает выполнять переименование через hg rename, однако он также может обнаруживать переименования из внешнего источника, используя hg addremove -s 100 (или менее 100, если вы хотите совместить переименование с изменениями), так что вы можете позволить VS переименуйте и получите mercurial для catchup с addremove.

Ответ 3

Мы используем SVN (точнее, TortoiseSVN), и меня всегда беспокоит проблема переименования. Самое простое решение, которое я нашел, - удалить файлы из проекта, переименовать их через TSVN и добавить их обратно в проект. Вы должны вручную обновлять обновления для переименованных файлов заголовков, но это относительно легко, используя find & replace.

Ответ 4

Мы используем Team Foundation Server, и он работает без проблем. Я также обнаружил, что переход к использованию полностью интегрированного клиента улучшил мой рабочий процесс, так как мне не нужно переключаться между приложениями только для выполнения тривиальных задач.

Ответ 5

Мы разрабатываем "Пластиковый SCM" и Visual Studio Package поддерживает операции перемещения. Но я вижу вашу точку зрения, мне становится все более и более комфортно с мыслью о том, что у меня нет плагинов/пакетов, а затем управление версиями работает за кулисами и просто обнаруживает, что произошло, не будучи "подключенным" к среде IDE. Фактически мы работаем над этим для следующего выпуска...

Ответ 6

Помимо вышеупомянутого совета, для Visual Studio 2008 я обнаружил, что после внесения всех глобальных изменений в любой файл, который переименован из VS, включая щелчок правой кнопкой мыши по файлу и переименование его, а также глобальный поиск и замену для всех строк, заменив старое имя файла на новое имя файла, вы должны, если файл является первоначальным файлом запуска, щелкните правой кнопкой мыши и выберите его как "установленный по умолчанию". В противном случае вы вполне можете получить "Невозможно найти ресурс". ошибка во время выполнения.