2008-09-25 8 views
7

Фон: В моей работе мы используем SVN, C# и VisualStudio. Часть моей задачи регулярно включает глобальные переименования. Часто я получаю сломанную сборку после переименования, а затем слияния в изменениях.Инструмент семантического слияния

Вопрос: есть ли решение, которое может посмотреть на мои изменения, заметить глобальное переименование, а затем применить это к редактированию, которое другие сделали при их объединении?

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

Инструмент не должен быть совершенным, даже если он просто отметил, что ссылки в их редакциях, которые ссылаются на то, что я отредактировал, были бы ценными.

Редактировать Я знаю инструменты рефакторинга VS. То, что я ищу, - это то, что позволит мне после того, как я отредактировал свою рабочую копию, применить те же рефакторинги к другим изменениям, которые мне теперь необходимо объединить.

Идеальное решение было бы убедиться когда я делаю рефакторинг, никаких замечательных изменений нет, но это помешает кому-либо сделать что-либо на следующей неделе или больше. (Потому что они должны будут синхронизировать каждые полчаса или около того на следующую неделю)

+1

В настоящее время хороший (коммерческий) вариант выглядит как [Code Compare] (http://www.devart.com/codecompare/), доступный в Visual Studio Extension Manager. – rsenna 2012-04-18 02:09:00

+1

Вы проверили это? http://plasticscm.com/sm/index.html Вы должны, это именно инструмент C#, который вы искали – pablo 2013-03-26 06:30:40

+0

Так что вы действительно хотите использовать инструмент семантического патча. – mbx 2017-10-05 14:53:40

ответ

0

Предполагая, что по крайней мере VS 2005 и глобальное переименование - это переменная/свойство/функция, есть пункт меню Refactor - Rename right-click menu, который вы мог использовать. По дизайну он распространяет изменение имени во всем своем решении.

0

Не удалось ли сократить время, необходимое для совершения ваших изменений? Одна или несколько недель кажется довольно длинной между фиксациями ...

0

Я понял вашу проблему. К сожалению, я считаю, что скрипт SVN достаточно умен, чтобы выполнять эту работу во время синхронизации.

Возможно, ваша команда, работающая более подходящим образом с SVN, может сделать эту ситуацию неокрашенной. Когда вы выполняете обновление svn: обновляете свою рабочую копию и выполняете операции слияния, рекомендуется перестроить обновленное решение, прежде чем совершать изменения.

Наличие сценария svn с возможностью делать это автоматически при слиянии, было бы здорово.

1

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

Нет простого способа автоматизировать рефакторинг, поэтому держите его простым. Переименование должно занимать всего несколько минут, и вы должны иметь возможность проверить и совершить с минимальным тестированием.

10

Существует коммерческий инструмент для такого использования, который называется Semantic Merge. Они предоставляют 15-дневную бесплатную пробную версию, проекты с открытым исходным кодом могут использовать ее бесплатно (contact the support).

Компания за семантическим объединением также имеет a git client with integrated Sematic Merge, который в настоящее время является бета-версией (здесь есть некоторые short intro videos).

Смежные вопросы