неизвестная ошибка ревизии при попытке вытащить хранилище из hg - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь клонировать репо из Mercurial. Я ввел команду: hg pull --rev=2500, все работает.

Однако, когда я пытаюсь hg pull --rev 3000, он показывает ошибку: abort:unknown revision '3000'!

Кто-нибудь знает, как это исправить?

Спасибо, Дженнифер.

1 Ответ

2 голосов
/ 19 февраля 2020

Вам просто нужно отбросить часть --revision=<em>number</em>. Но здесь есть кое-что странное: hg pull предназначено для копирования наборов изменений из хранилища, а не для клонирования хранилища.

В клон репозиторий означает:

  1. Создать новый пустой репозиторий.
  2. Скопировать все 1 наборов изменений из какого-либо другого репозитория в этот репозиторий.

В извлечение из хранилища означает:

  1. Скопировать все 2 наборов изменений из какого-либо другого репозитория, которые у них есть, а я нет , к этому хранилищу.

Обратите внимание, что эти два похожи, но не идентичны. Операция клонирования сначала создает новый пустой репозиторий. Шаг 2, заполните хранилище (всеми) наборами изменений из другого хранилища, соответствует шагу 1 действия pull . С тягой мы добавляем только те наборы изменений, которые у них есть, а у нас нет, но поскольку наш новый пустой репозиторий empty , все наборов изменений, которые у них есть, это те, которые мы не делаем .

Обе операции включают вызов некоторого другого (существующего) хранилища Mercurial. Первый создает ваш репозиторий, пока он делает этот вызов; вторая использует ваш существующий репозиторий и делает этот вызов. Обратите внимание, что в обоих случаях другой репозиторий здесь имеет свои собственные наборы изменений, которые находятся в некотором наборе ветвей, и что другие репозитории нумеруют эти наборы изменений, используя его нумерация.

, поскольку у вас уже есть хранилище, вы, очевидно, просто хотите hg pull в любом случае. См. Сноски 1 и 2 о том, что делает --rev=2500.


1 Иногда нам не нужны все наборов изменений. Мы можем сделать ограниченный клон, используя только некоторые наборов изменений. Клонирование с помощью -b <em>branch</em> говорит Mercurial, что нужно пропустить наборы изменений, которые не требуются для получения наборов изменений, которые находятся в именованной ветви.

2 Как и раньше, нам может не потребоваться all Изменения. Мы можем сообщить другому хранилищу Mercurial: Дайте мне ваши наборы изменений, заканчивающиеся, например, вашим номером 2500 . Вы запрашиваете его наборы изменений до 3000, и на данный момент у него просто не так много наборов изменений.

...