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