Подтвердить что ты не робот

Есть ли преимущество в использовании --no-metadata в git svn clone?

Я делаю односторонний конвертер из репозитория SVN в репозиторий Git, используя git svn clone. В большинстве примеров это с флагом --no-metadata - есть ли преимущество в использовании этого флага?

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

Каковы аргументы для с помощью флага --no-metadata? Есть ли какая-либо польза, кроме ощущения нарушения всех связей?

4b9b3361

Ответ 1

На самом деле это не рекомендуется:

Этот параметр НЕ рекомендуется, так как он затрудняет отслеживание старые ссылки на номера версий SVN в существующей документации, ошибка отчетов и архивов. Если вы планируете в конечном итоге перейти от SVN к git и уверены в том, что вы сбросите историю SVN, рассмотрите git - фильтр-ветвь (1). фильтр-ветвь также позволяет переформатировать метаданных для упрощения чтения и переписывания информации об авторстве для пользователи не "svn.authorsFile".

Ответ 2

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

В качестве примера, если я git svn init репо из локального URL file:, а затем вытащить из URL https:, каждая фиксация в репо будет дублироваться, так как все коммиты с git-svn-id: file:///... будет выбрана как git-svn-id: https:///... и закодирована с новыми SHA1.

Если я укажу --no-metadata, тогда сообщение фиксации и этот sha1 будут одинаковыми, и я могу получить их из локальной файловой системы или сервера subversion, потому что будет только одна копия любого заданного svn commit в git repo.

Лично я бы предпочел, если бы был минимальный вариант метаданных, в котором был зарегистрирован идентификатор ревизии subversion, но не полные метаданные, но без беспорядка с git-filter-branch мы застряли со всеми или ничего.