Как мне обработать два варианта проекта с двумя репозиториями Mercurial? - PullRequest
0 голосов
/ 20 февраля 2011

У нас есть приложение с открытым исходным кодом, опубликованное как GPLv2. У нас также есть немного другая версия с коммерческой лицензией. Различия между этими двумя вариантами очень ограничены.

У нас есть основной репозиторий Mercurial для приложения GPL.

Я хочу иметь возможность хранить отдельное репо для коммерческого приложения (главное - публичное), но я также хочу иметь возможность регулярно «пушить» изменения в нем (но не наоборот). Учтите, что эти репозитории размещены на веб-сервисе, на котором размещен проект.

Что я сделал до сих пор:

  1. создал новый комм репо
  2. зафиксировал первую версию коммерческого приложения (без истории)
  3. push comm на удаленный хостинг
  4. Модифицированный с открытым исходным кодом репо
  5. пытался перейти с с открытым исходным кодом на удаленный comm , hg говорит, что репозитории не связаны
  6. пытался перейти с * open-source '* на comm с опцией -f (force), hg теперь просто показывает предупреждение

Проблема с шагом 6 состоит в том, что я помещаю ВСЕ ревизии в репо comm , что неверно. Я в основном хочу выдвинуть изменения с данного момента времени (очень похоже на объединение двух ветвей SVN).

Я изучаю расширение hg transplant, но, кажется, его сложно использовать на регулярной основе.

Я новичок в Mercurial, поэтому могу ошибаться, поэтому, пожалуйста, предложите и другие способы решения той же проблемы.

1 Ответ

1 голос
/ 07 марта 2011

С распределенной системой управления версиями, такой как mercurial, вы могли бы клонировать исходный репозиторий на шаге 1, имея два репозитория с одинаковым содержимым в начальной точке, а именно с открытым исходным кодом и comm как ты их назвал.Вы сделаете ваши первоначальные изменения в вашем comm хранилище.По мере развития в репо с открытым исходным кодом вы будете регулярно вносить изменения в репозиторий comm и объединять их с этими изменениями.Это создаст дополнительные наборы изменений слияния в репо comm .Пока вы не вернете их обратно в репозиторий с открытым исходным кодом , вы не увидите их там, и они не должны мешать там, но я все равно понял, что вы хотели.

...