репозитория - svn2git




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

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

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

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


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

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


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

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

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

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





git-svn