Исправить репозиторий HgSubversion после перебазирования без --svn - PullRequest
3 голосов
/ 16 января 2012

Я некоторое время счастливо использовал HgSubversion, и сегодня я забыл добавить --svn в команду rebase.Теперь я получаю страшную неизвестную ревизию ''

Есть ли способ восстановиться после этого?

Ответы [ 2 ]

5 голосов
/ 19 января 2012

Вы должны быть в состоянии сделать "hg svn rebuildmeta", а затем выполнить "hg pull" и заставить его починить вещи.

Примечание: это не проверено, поэтому я буду работать с дубликатом локальногоРЕПО в случае, если это испортит вещи.Моя память о коде подсказывает, что это сработает.

1 голос
/ 17 января 2012

Я бы попробовал использовать расширение transplant, чтобы исправить это:

  1. Повторно клонировать SVN-репозиторий в новый локальный репозиторий.
  2. Изучите историю исходного хранилища и отметьте, какие изменения необходимо перенести
  3. Пересадить изменения из старого репозитория в новый репозиторий

Например - исправление репо hgsubversion с именем project:

> hg clone svn+http://svnrepo/project project-tmp

Затем просмотрите журнал вашей исходной папки проекта и выполните следующие действия из папки project-tmp:

> hg transplant -s ../project 1234

Где 1234 - ревизия, которую вы хотите перенести. Повторяйте это, пока все ваши ревизии не будут скопированы.

Когда вы закончите, вы сможете начать использовать новую папку вместо старой, повторно вытащив из SVN, отменив изменения и отодвинув их назад (не забудьте --svn)

...