Подтвердить что ты не робот

"Не пересмотр главы!" в Mercurial Hg

Я работаю в небольшой организации, только два разработчика, и мы используем Mercurial version control tortoisehg-2.2.2-hg-2.0.2-x86. Я новичок в мире.

Рассмотрим programmerA, programmerB.

В машине programerA я создал репозиторий и клиент с именем "EFSL". programmerB - это просто клиент с именем "Uthaya Kumar", указывающий на репозиторий машин programmerA.

Когда я вытаскиваю изменения, установленные в машине programmerA, он создает новую ветку, и он также показывает ошибку "Not a head revision!" как в рабочем каталоге, так и в репозитории.

В programmerB это нормально.

Смотрите скриншоты ниже.

Спасибо заранее.

Screen Shot 1Screen Shot 2Screen Shot 3

4b9b3361

Ответ 1

Изучите первый снимок экрана и посмотрите, что верхняя строка говорит 8+ в столбце Rev. Это означает, что ваша рабочая копия основана на версии 8. Вы можете следовать за строкой вниз, а также видеть, что она присоединяется к версии 8, которая указывает на то же самое.

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

  • Если вы не внесли никаких изменений, щелкните правой кнопкой мыши на ревизии 13 и выберите Обновить.... для обновления до последнего изменения.

  • Если вы внесли изменения, вам необходимо зафиксировать эти изменения, а затем щелкнуть правой кнопкой мыши по версии 13 и выбрать Слияние с локальным..., в котором появляется мастер для обработки слияния.

На последнем скриншоте кажется, что у вас нет рабочей копии вообще, поэтому вам нужно использовать описанную выше процедуру обновления для обновления до версии 13.

Вы можете выполнить update автоматически, изменив настройку в TortoiseHg:

  • Выберите Файл > Настройки из Workbench
  • Выберите, где вы хотите изменить настройку, выбрав соответствующую вкладку вверху. Выбор является глобальным для пользователя или только для этого репозитория.
  • Выберите Workbench в левом списке
  • В разделе справа найдите раскрывающийся список с надписью After Pull Operation
  • Выберите обновить из списка

Это будет делать обновление до последнего каждый раз, когда вы будете тянуть, что позволит избежать проблемы в вашем первом скриншоте. Вам все равно придется выполнять ручное слияние, когда вы и другой разработчик внесли изменения.

Другими параметрами в этом списке являются rebase и fetch, которые полагаются на соответствующее расширение, которое включено и предназначено только для расширенного использования.

Ответ 2

Это совершенно нормальное и правильное поведение Mercurial. Рабочий каталог в настоящее время обновляется до набора изменений 8 "Объединить 2". Операция pull не изменит содержимое вашего рабочего каталога. Он просто пропускает набор изменений и добавляет их в свой график истории. После того, как вы потянули, вы все еще работаете с набором изменений 8. Теперь "Не ревизия головы" предупреждает вас, что если вы сейчас внесете какие-либо изменения и зафиксируете их, вы создадите новый набор изменений, полученный из Редакции 8, который будет эффективно создавать новый филиал. Это то, что вы можете или не хотите делать. Обычно после вытягивания новых наборов изменений вы хотите обновить рабочий каталог до последнего набора изменений, щелкнув правой кнопкой мыши последний набор изменений и выбрав "Обновить"...

P.S. Вы не используете последнюю версию TortoiseHG. Обновите последнюю версию. Он содержит много улучшений и устраняет многие ошибки.