Этот вопрос очень похож на тот, который был задан в этом вопросе, но у меня возникли некоторые проблемы после обхода.
Проблема:
В основном у меня есть сервер Subversion и локальный клиент Mercurial.Расширение hg-subversion позволяет Mercurial выступать в качестве клиента Subversion.Это идеально для меня, потому что я могу создавать неограниченные ветки функций из моей ветки разработки Subversion и объединять их по своему усмотрению.
Из-за ограничения subversion я не могу зафиксировать слияние веток с хранилищем subversion.На самом деле, мне не нужно фиксировать каждое слияние веток, я просто хочу, чтобы заголовок ветки «по умолчанию» фиксировался в SVN.
Предлагаемое решение:
Обходной путь, который Харви порекомендовал, состоял в том, чтобы изменить мой рабочий процесс, включив в него только клон hg клона hgsubversion для разработки.
Цитируя Харви:
Хитрость заключается в том, чтобы изучитьизменен рабочий процесс hg <-> hgsubversion <-> svn.Как только вы «поймете», как это работает, у вас не будет никаких проблем.Вы просто наберете еще несколько команд.Я фактически начал писать сценарии, чтобы сделать процесс (который повторяется) проще.Типичный поток: [в репозитории "hg"] фиксирует кучу изменений;подтолкнуть их к "hgsubversion";[переключиться на "hgsubversion"] hg update (это нужно для hgsubversion);hg push to "svn" (который автоматически вытягивает после того, как вы нажимаете и удаляет ваши ревизии локально);[переключиться обратно на "hg"] hg pull из "hgsubversion";hg удалите старые дубликаты, поскольку b / c "hg" не является клоном hgsubversion и не знает, как автоматически удалять старые наборы изменений.
Проблема, с которой я столкнулся:
Я застреваю в точке, где я запускаю команду hg push из hgsubversion в репозиторий svn.Я все еще получаю сообщение об ошибке: «abort: извините, не могу найти svn-родитель ревизии слияния».
По общему признанию, я не на 100% от того, как hgsubversion выдвигает ревизии в svn.Честно говоря, я хотел бы видеть состояние, в котором находится моя локальная копия на сервере svn.
Halp?