Как мигрировать от Хранилища SourceGear до TFS?

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

blockquote>

В целом, №

Это, безусловно, не широко признано как хорошая практика 1 sup>.

Вот некоторые плюсы и минусы:

  1. Да: если вы реализовали это, информация о трассировке полезна.

  2. Да: вы можете отключить запись трассировки.

  3. Нет: для нетривиального приложения количество журналов трассировки может быть огромным. Слишком много, чтобы хранить. Слишком много для анализа. Слишком много, чтобы попросить клиента отправить вас.

  4. Нет: при ведении журнала возникают накладные расходы ... даже если ведение журнала отключено с помощью средства защиты времени выполнения в операторе ведения журнала 2 sup>.

  5. Нет: дополнительные операторы журналирования в начале и конце каждого метода являются «беспорядочными», которые затрудняют чтение кода.

  6. Нет: при условии, что дополнительные операторы журналирования добавляются вручную, это дополнительные усилия по программированию и дополнительный источник ошибок. (И ошибки могут быть трудно обнаружить в тесте. Собираетесь ли вы писать модульные тесты / что-нибудь еще, чтобы проверить, что трассировка была реализована правильно?)

  7. Нет: отладка трассировки может изменить поведение вашего кода, если он многопоточный. Например, включение трассировки может привести к случайной синхронизации в не поточно-ориентированном приложении. Это может привести к изменению поведения неисправного приложения; c.f. Гейзенбаг .

Наконец, отладчик вашей IDE может позволить вам автоматически регистрировать вход и выход методов без каких-либо действий на уровне исходного кода. (Конечно, это не помогает с проблемой Heisenbug; см. Выше.)


1 - Если бы это было так, вы бы увидели эту практику во многих / большинстве открытых кодовых баз. Я не могу вспомнить, чтобы когда-либо видел его. Sup>

2 - Если вы найдете способ отключить его с помощью препроцессора, или путем внедрения кода времени сборки / загрузки, или с помощью конструкций if (compileTimeConstFlag), вы можно снять накладные расходы. Но тогда вы теряете возможность включать и выключать трассировку. И влияние на ваш исходный код больше. Sup>

7
задан Jonathan Nixon 25 February 2014 в 02:55
поделиться

2 ответа

Не совсем. TFS не слишком хорош об импорте истории.

Зато, это - Ваш шанс перестроить Ваше дерево исходного кода.

5
ответ дан 7 December 2019 в 10:08
поделиться

MS создал инструментарий для создания импорта и экспортирует инструменты.

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

Другая опция состоит в том, чтобы импортировать текущее состояние (просто работают, TF добавляют в рекламу ответвления Импорта, затем переходят в Ваш рабочий проект), и имейте в наличии Хранилище для того, когда необходимо посмотреть на историю.

1
ответ дан 7 December 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: