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

Mercurial через TortoiseHg - объедините названную ветку, затем закройте ее

У меня есть именованная ветвь NewFeature, которую я отключил от ветки по умолчанию. Я сделал пару коммитов для этой ветки, и теперь я хотел бы объединить ее, чтобы присоединиться к ветке по умолчанию.

Теперь (каждая буква является фиксацией):

   default: A---B
NewFeature:      \--C---D

Что мне нужно:

   default: A---B-----------E
NewFeature:      \--C---D--/

Я попытался щелкнуть правой кнопкой мыши по каталогу и выбрать "Hg Commit...". Затем я выбрал "Закрыть текущую именованную ветвь". Я получил эту ошибку: abort: can only close branch heads

Я также искал опцию "закрыть ветку" в проводнике репозитория, но ничего не нашел.

Может ли кто-нибудь помочь? Спасибо заранее!

Изменить: я отправил issue в TortoiseHg

4b9b3361

Ответ 1

Чтобы объединиться, вам нужна чистая рабочая копия - никаких незафиксированных изменений. Слияние будет помещено в рабочую копию для просмотра, а затем вы завершите рабочую копию для "завершения" слияния.

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

Использование проводника репозитория:

  • Update рабочая копия в rev B.

  • Выберите строку rev D в истории изменений.

  • Щелкните правой кнопкой мыши на rev D и выберите Merge with.... Диалог должен показать rev B должен быть локальным rev и D должен быть другим rev.

  • Нажмите Merge в диалоговом окне слияния и разрешите любые конфликты, если они есть.

До сих пор в репозитории ничего не было изменено - ваше слияние находится в рабочей копии. Поэтому, если что-то не так, вы можете отменить слияние, вернуть рабочий каталог и начать работу позднее или после внесения каких-либо дополнительных изменений в ветки или магистрали.

Если после шагов 1-4 все хорошо, нажмите Commit в диалоговом окне слияния, чтобы зафиксировать слияние.

Ответ 2

Пример, который вы даете, скорее слияние, чем на самом деле Close. Кроме того, если это так просто, вы, вероятно, не хотите/не должны создавать именованную ветвь.

Но , если вы действительно хотите закрыть ветвь через TortoiseHg, например

  • вы создали ветвь NewFeature
  • тогда были изменены как ветки Default branch, так и NewFeature
  • то если ветвь NewFeature занимает довольно много времени, вы, возможно, уже несколько раз объединили значение по умолчанию в NewFeature (чтобы избежать слишком большого количества различий, когда вы захотите, наконец, объединить ветвь NewFeature в значение по умолчанию)
  • в конечном итоге ваша новая функция полностью реализована или достаточно стабильна, вы объединили ветвь NewFeature в значение по умолчанию.

Отныне никто не должен ничего совершать на ветке NewFeature, поэтому вы хотели бы закрыть его.

Вы можете сделать это в TortoiseHg (у меня есть версия 2.3.2):

  • нажмите Hg Commit..., когда вы в своей ветке NewFeature (нет необходимости что-либо совершать - или вы делаете это с окончательным слиянием)
  • нажмите "Ветвь: NewFeature" (она сверху выделена жирным шрифтом)
  • выберите "Закрыть текущую ветку" .

Ответ 3

В TortoiseHg ваша рабочая копия должна быть обновлена ​​до конца ветки, которую вы хотите закрыть, прежде чем использовать диалог фиксации.

Закрытие ветки создаст новый набор изменений поверх кончика ответвления.

Обнаруженная вами ошибка (abort: can only close branch heads) обычно возникает, если вы обновили набор изменений не на вершине именованной ветки.

Ответ 4

Вы также получаете эту ошибку: ветка уже закрыта, т.е. пытается закрыть закрытую ветвь. Полезное сообщение об ошибке было бы полезно.