Есть ли преимущество использования --no-metadata в git svn clone? - PullRequest
20 голосов
/ 01 декабря 2011

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

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

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

Ответы [ 2 ]

14 голосов
/ 30 июля 2015

Одним из аргументов в пользу использования --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 мы застряли со всеми или ничего .

11 голосов
/ 01 декабря 2011

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

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

...