2013-10-14 5 views
0

Мы используем Печь с ртутным покрытием.Печи для хранения ртутных хранилищ для версий

Упрощенное описание У нас есть 2 вида репозиториев.

Some Kind из

"CurrentDevelopment" и хранилища для каждой выпущенной версии, например 13,1 для выпущенной версии 13.1. (Есть также пользовательские репозитории и многое другое, например descriped на hginit.com, но на данный момент это может быть проигнорировано)

Теперь иногда нам нужно исправить выпущенную версию. Поэтому мы исправляем его в репозитории для выпущенной версии. Для 13.1.

Тогда мы Cann тянуть от 13,1 доcurrentDevelopment хранилище

Это, кажется, работает хорошо.

Но теперь мы могли бы сделать что-то в «CurrentDevelopment» и через месяц мы признаем, что это изменение также будет необходимо в 13.1 Но я не могу вытащить из CurrentDevelopment к 13.1, потому что есть много других изменений, которые я не хочу иметь в 13.1

Я знаю, что это своего рода «выбор вишни», который я не просто понял. Но если бы не было много исходного кода, код перекодировал бы их в 13.1.

Но после того, что, когда я внести изменения в 13,1, которые я тянуть к текущему развитию я бы также тянуть изменения, которые уже включены в CurrentDevelopment: -/так что в худшем случае я может получить слияние неудачи и дублировать код ? Я не уверен, будет ли mercurial безопасно распознавать, что этот код также содержится.

Каков рекомендуемый подход к реализации этих репозиториев с конкретными версиями и обработка изменений между ними? В частности, если впоследствии необходимо изменить текущий репозиторий разработки в дочерней ветке проверки?

ответ

0

graft mercurial command - ваш друг здесь. Позволяет вам выполнить обратную замену старой ветке.

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

редактировать ... Я не думаю, что команда трансплантата подвергается в пользовательском интерфейсе версии TortoiseHg, что в настоящее время в комплекте с печью. См. how to use graft in TortoiseHg Командная строка все равно должна работать.