Я новичок в HG, я ищу несколько советов о том, как справиться с этим сценарием.
У нас есть центральное репо, размещенное в Килне. Трое парней из моей команды отредактировали код и, в конце концов, готовы с нашим кодом, который мы помечаем и выпускаем как Version1
. Затем мы с радостью начинаем работать над нашей следующей основной версией. Во время работы над ним необходимо исправить критическую ошибку в Version1
, чтобы Джеймс клонировал репо, используя hg clone -r Version1 <a href="http://centralrepo" rel="nofollow">http://centralrepo</a>
, где он вносил свои изменения, и помечал его как Version1.1
.
Теперь, как Version1.1 возвращается к центральному репо? Использование hg push
вызывает прерывание, потому что есть две удаленные головки. Без этого в центральном репо, Даг никогда не сможет прийти и исправить Version1.1
, если это когда-нибудь понадобится.
Как я могу изменить свой процесс так, чтобы все мои теги всегда сохранялись в центральном репо и легко помещались в ветку dev?
UPDATE / EDIT
По предложению Джоэла я сделал следующие изменения:
На веб-сайте Kiln я создаю свой основной активный репозиторий. Когда у меня есть код, я создаю из него новую ветку.
Я клонирую свою ветку ActiveDev: hg clone <a href="http://activeDev" rel="nofollow">http://activeDev</a> code-activeDev
Я клонирую свою Стабильную ветку: ht clone <a href="http://stable" rel="nofollow">http://stable</a> code-stable
Я установил тег в моей стабильной ветке: hg tag V1.0
, а затем переместил его в стабильную ветку и в активную ветку dev. При переходе к activeDev я использую команду -f. Теперь обе ветви идентичны.
Я делаю hg pull
и запускаю новую функцию в ActiveDev. Затем верните эту функцию обратно в центр:
hg com
hg push
Стабильный получает исправление ошибки, а затем подталкивает к своему репо, используя те же две команды. Теперь, когда я пытаюсь перенести это исправление в ветку activeDev, мне снова выдается сообщение «у вас две головы, используйте -f». Однако, если я заставлю его, новая функция, которую я нажал ранее в activeDev
, сдувается исправлениями, которые я сделал в stable
.
Я сделал что-то не так? Я где-то пропускаю шаг?