2010-04-07 5 views
11

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

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

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

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

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

(* мерзавец достаточно умны, чтобы работать это для себя)

ответ

1

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

+0

Удаление файла из проектов удалит его с этого диска. Поэтому вам нужно * исключить его из проекта. Я делаю следующее: сначала переименуйте класс, используя меню Refactor в VS, затем переименуйте файл с помощью SVN, а затем - добавьте новый файл в проект и удалите старый – abatishchev

+0

Yuck! Звучит ужасно в любом случае, хотя я думаю, что решение @ abatishchev звучит немного лучше. – Benjol

+0

Если вы щелкните правой кнопкой мыши по файлу и выберите «Удалить», VS спросит, хотите ли вы удалить или удалить файл. Если вы выберете remove, файл не будет удален. – erelender

1

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

+0

Спасибо. Я думаю, что TFS, работающая с VS, не вызывает проблем :) Я потерял TFS из своего списка «потенциалов» несколько лет назад из-за цены и боли в установке. Может быть, я должен проверить еще раз ... – Benjol

+0

@ Benjol проверить в следующий понедельник, когда выпущен VS2010 - я понимаю, что вы получаете TFS с ним. –

2

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

+0

Спасибо, это хорошо знать – Benjol

5

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

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

+0

Особенно, поскольку интеграция с VS (по крайней мере, в последний раз, когда я ее использовал), ориентирована на checkout-modify-checkin, и все чаще инструменты управления версиями - get-modify-merge. – Benjol

+0

Ничего себе, это здорово знать. Мне обычно приходится делать более сложные: удалить из проекта, svn переименовать, добавить обратно в проект shuffle. Это означает, что один шаг - мне просто нужно ждать лучшей интеграции VS. – quamrana

0

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

1

Мы разрабатываем «Пластиковые СКМ» и Visual Studio Package supports move operations. Но я вижу вашу точку зрения, мне становится все более и более комфортно с мыслью о том, что у меня нет плагинов/пакетов, а затем управление версиями работает за кулисами и просто обнаруживает, что произошло, не будучи «подключенным» к среде IDE. На самом деле мы работаем над этим для следующего выпуска ...

+0

Приятно здесь! Продолжайте хорошую работу. – Benjol