git svn fetch не получает сообщение о фиксации Subversion, измененное после первоначального клона - PullRequest
2 голосов
/ 18 января 2011

Я клонировал большой репозиторий SVN (около 8 000 коммитов), и, похоже, все в порядке.

С тех пор сообщения о фиксации около 20 сообщений фиксации Subversion были изменены, чтобы исправить опечатку.Это было сделано законно.Однако git svn fetch не извлекает обновленные сообщения коммита.Он по-прежнему отображает старое устаревшее сообщение о фиксации.

Есть ли способ исправить это?Желательно чистым способом и не слишком взламывая мой локальный git-репозиторий?

Я пробовал git svn fetch -r 1234 (где 1234 - известный номер ревизии).Но не повезло.

1 Ответ

1 голос
/ 20 января 2011

из http://git -scm.com / docs / git-svn :

git svn reset

Отменяет эффекты извлечения обратно к указанной ревизии. Это позволяет вам, чтобы повторно получить ревизию SVN.

[...]

Выполните сброс с помощью fetch и затем git сброс или git rebase для перемещения локального разветвляется на новое дерево.

Так что в вашем случае, если ревизия 1234 является первой, в которой было изменено сообщение о коммите, вы должны сделать

$ git svn reset -p 1234
$ git svn fetch

Если что-то отличается, в том числе сообщение о коммите, то новый коммит - это совершенно другой объект с новым SHA1, так что, как говорится, вам нужно перебазировать любые ветви, которые у вас могут быть, в соответствующий переписанный коммит.

...