Перенести базар на git с фиксацией свойств для связывания исправленных ошибок

Мы использовали bazaar-vcs в течение нескольких лет, но решили перейти на git из-за некоторых давних досадных ошибок и остановили разработку bzr.

При использовании bazaar мы широко использовали функцию «метаданные отслеживания ошибок» в bazaar (http://doc.bazaar.canonical.com/bzr.dev/en/user-reference/bugs-help.html). Таким образом, каждая фиксация исправления ошибок включала идентификатор в соответствующий идентификатор ошибки-богомола, чтобы у нас была связь между источником и богомолом.

Наше сообщение-фиксация не включает идентификатор-богомола, мы использовали только «функцию метаданных»:

введите описание изображения здесь

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

Я уже пробовал экспортировать / импортировать наш репозиторий базара в git, используя команды fast-import / fast-export:

bzr fast-export --no-plain --rewrite-tag-names / var / www / source_branch / | git fast-import

К сожалению, я получаю следующую ошибку:

fatal: This version of fast-import does not support feature commit-properties.

Однако, если я использую параметр --plain вместо --no-plain, импорт работает, но мы теряем все связи с нашими ошибками.

Есть ли какое-то решение / обходной путь для перехода с bzr на git без потери всех этих ссылок на ошибки, которые так важны для нас?

[Edit]: я только что проанализировал формат файла быстрого импорта / быстрого экспорта, который очень прост. Должна быть возможность написать какой-нибудь сценарий для изменения файла и перемещения строк (ошибки свойств ...) в соответствующую строку сообщения фиксации. Однако, если есть готовое решение, я был бы рад его услышать :)


person David Roth    schedule 25.01.2013    source источник


Ответы (2)


Git Fast-import не поддерживает свойства метаданных, поэтому не было возможности перенести эту информацию только с помощью существующих инструментов.

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

Переписчик C # работает, выполняя следующие шаги:

  1. Разбор коммитов из входного потока
  2. Убедитесь, что фиксация содержит команду ошибок свойства
  3. Разберите идентификатор ошибки и измените сообщение фиксации с извлеченным идентификатором ошибки.
  4. Исключить другие неподдерживаемые команды только для bzr-fastexport ("функция", "ник ветки свойств"))

Более подробную информацию об этом перезаписчике + код можно найти здесь: http://www.fusonic.net/en/blog/2013/03/26/migrating-from-bazaar-to-git/

person David Roth    schedule 26.03.2013
comment
Есть ли шанс разместить двоичный файл? Создайте среду C # на месте. - person Kieveli; 14.11.2013

У меня была аналогичная потребность. Я попробовал переписчик Дэвида, но он выдал результат, который не удался при импорте git. Я подозреваю, что это была небольшая ошибка при переименовании некоторых файлов в коммите.

Я понял, что может быть проще просто изменить 'bzr fast-export --plain', чтобы просто делать то, что я хочу.

Я зарегистрировал ошибку восходящего потока (быстрый экспорт bzr) по адресу LP: # 1606973 и приложил решение, которое сработало для меня. После изменения fastimport / exporter.py я только что сделал:

bzr fast-export --git-branch=master --plain | git fast-import
person Scott Moser    schedule 27.07.2016