Как я могу синхронизировать закрытые и открытые версии одного и того же инструмента с помощью Mercurial? - PullRequest
2 голосов
/ 06 декабря 2010

У меня есть инструмент, для которого я хотел бы выпустить источник.Однако некоторые функции не могут быть выпущены как части с открытым исходным кодом из-за лицензионных ограничений.Я бы хотел в целом разработать сам инструмент, используя версию кода с открытым исходным кодом, но при каждом выпуске мне нужно переносить несколько функций в закрытой версии обратно в сборку для конкретного клиента.

Iя не могу просто использовать для этого обычную ветвь, потому что это поместит биты с закрытым исходным кодом в тот же репозиторий, где я хотел бы поделиться открытым кодом (в данном случае, Bitbucket).

Есть личто я могу сделать, или я застрял с ручным перемещением источника вокруг?

Ответы [ 2 ]

2 голосов
/ 06 декабря 2010

У вас будет 2 репозитория, один из которых будет содержать весь закрытый источник, а другой - весь открытый.

В вашем хранилище с закрытым исходным кодом вы извлекаете все изменения из хранилища с открытым исходным кодом и объединяетесь с закрытым исходным кодом.

Это должно работать без проблем, если только вам не нужно реализовывать некоторые части, отличающиеся от этих двух, тогда у вас будут конфликты слияния в этих областях при слиянии ваших изменений.

2 голосов
/ 06 декабря 2010

Можете ли вы разделить секретные биты на плагины / дополнения (что-то, что можно включить при сборке или во время исполнения) и разбить кодовую базу на два репозитория, один для редакции с открытым исходным кодом (а также основу для издания с закрытым исходным кодом ), а один для дополнений с закрытым исходным кодом?

Таким образом, сборка с закрытым исходным кодом все равно будет использовать тот же репозиторий, но добавит некоторые дополнительные вещи из секретной базы второго кода. Процесс сборки будет аналогичен процессу для внешней входящей библиотеки.

...