Используя Mercurial, как мне получить изменения по умолчанию в именованную ветку?
У меня есть центральный репозиторий Mercurial, содержащий историю, клонированную из репозитория SVN с использованием hgsubversion. Я извлек дополнительные коммиты, сделанные в репозиторий SVN с тех пор, как был клонирован исходный репозиторий hg; они в настоящее время находятся в ветке по умолчанию.
У меня также есть названная ветвь. Я клонировал эту ветку (используя hg clone -b mybranch
) к моей локальной системе. Теперь я хочу получить изменения, которые существуют только по умолчанию, и сделать их доступными в моей именованной ветви. Я вижу очевидный способ сделать это, чтобы сделать hg update mybranch
на репо, тогда hg merge default
и совершать. Это кажется опасным - если я забуду обновить настройки по умолчанию после того, как я закончу, все будущие извлечения из SVN приведут к изменениям в mybranch.
Я также подумал, что, возможно, мне не следовало указывать mybranch, когда я клонировал репо, а клонировал весь репо и просто обновлялся до mybranch локально. Таким образом, я мог перенести изменения по умолчанию в мой локальный клон и выполнить слияние там.
Какой правильный ответ здесь? Сделайте это на общем репо и просто будьте осторожны? Клонировать все и управлять филиалами локально? Или есть более простое решение, которое я пропускаю?
2 ответа
В общем, в случае с Mercurial, когда я делаю что-то, что, по моему мнению, может вызвать проблемы, я клонирую репозиторий и пробую его там. Затем я могу либо вернуть эти изменения обратно, либо выполнить действие в реальном хранилище. В любом случае у меня есть возможность потерпеть неудачу и не нанести никакого ущерба. Клоны могут быть выброшены, вам не нужно держать их рядом, если вы облажались.
Делайте это в общем репо и будьте осторожны. Или клонируйте весь общий репозиторий, сделайте слияние там, а затем нажмите на клон только для филиала.