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