#mercurial
#mercurial
Вопрос:
У меня есть некоторые проблемы с Mercurial. Проверка ревизии работает (с помощью команды hg clone -r X, которая клонирует ревизию X.), Но когда я попытался получить журнал для ревизии X., он возвращается с ревизией, которая не существует. Как я могу решить эту проблему?
Команды, которые я использую:
hg clone -r RevisionNumber /path/to/local/repo my_folder
Затем:
hg log -r RevisionNumber --template 'my_template'
hg diff -c RevisionNumber
Я получаю:
abort: unknown revision 'RevisionNumber '!
Я попытался выполнить ревизию с помощью number и number: hash, ни один из них не сработал.
Комментарии:
1. Пожалуйста, введите точные команды, которые вы используете. А что такое X? Хэш, тег или число?
2. Спасибо, я обновил сообщение.
3. В вашей
log
команде удалите все после первого числа оборотов и повторите попытку.4. Не используйте
--template
опцию, если вы не знаете, как ее использовать5. Проблема не в моем теге шаблона, я могу его использовать. Без тега шаблона проблема остается той же.
Ответ №1:
Я предполагаю, что вы ссылаетесь на набор изменений по идентификатору ревизии (вашему RevisionNumber
), который является локальным для исходного репозитория. Только хэш, идентифицирующий набор изменений, глобально уникален. Я основываю это предположение на вашем заявлении
Я попытался выполнить ревизию с помощью number и number: hash, ни один из них не сработал.
Вы должны попробовать использовать только хэш и посмотреть, работает ли это.
hg log -r [hash]
(Если да number:hash
, hg
то думает, что вы ищете диапазон изменений между number
и hash
).
Объяснение: при клонировании в определенную версию Mercurial включает только наборы изменений, которые являются прямыми предками этой версии, и не учитывает все остальные. Нумерация является локально последовательной (что означает, что новые номера присваиваются по мере поступления набора изменений в репозиторий).
Комментарии:
1. Спасибо, это было решение