Как вы используете Mercurial для следующей проблемы.
Предположим, у меня есть библиотека Core. Теперь я хочу разработать расширение для этой библиотеки под названием Extension. Я хочу, чтобы Core физически отличался от Extension, то есть предположим, что Core - это библиотека с открытым исходным кодом, а Extension - это частная библиотека, которая основывается на Core (возможно, в ней есть некоторые вещи, которые я хочу сохранить лично. Очевидно, я не хочу выталкивать весь источник в Extension в публичный репозиторий. Но, с другой стороны, мне может потребоваться внести определенные изменения от расширения к ядру (если бы я решил "пожертвовать" часть расширения на ядро) или наоборот (если я хочу включить исправления ошибок, скажем).
Как бы вы это сделали, сводя к минимуму риск утечки Extension to Core (как только история будет перенесена на общедоступный сервер, туда не вернется!), сохраняя гибкость, чтобы сделать это для определенных изменений. Ветви? Клоны? MQS? Что-то другое?
В настоящее время я только знаком с клонированием репозиториев и очень похож на его простоту.
EDIT: Я придумал эту схему, но я не могу заставить ее работать под окнами. Два репозитория (ядро и расширение). В Extension есть две ветки, также ядро и расширение. Теперь вы можете зарегистрировать на репозитории крючок в Mercurial, поэтому я хотел бы зарегистрировать крюк pretxnchangegroup в репозитории Core, который запрещает верификации из ветки расширения, в качестве объяснения в книге Mercurial. Кроме того, я не совсем понимаю, что работать под окнами. Итак:
- У кого-нибудь есть пример чего-то подобного (на самом деле, любой крючок, который изменяет результат транзакции) под окнами?
- Я все еще смогу использовать трансплантацию для изменений cherrypick из ветки Extension to the Core, правильно?