Я пытаюсь настроить три вещи:
- публичное зеркало GIT публичного репозитория SVN
- публичный форк этого репо, где несколько участников могут устанавливать патчи
- частный форк публичного репо от # 2
Я знаю, как сделать # 1, но ищу советы по # 2 и # 3: как настроить, как сохранить синхронизацию, что следует избегать и т. Д.
Вот более подробная информация:
Я работаю с основанным на SVN веб-приложением с открытым исходным кодом, механизм отправки исправлений которого является медленным и неэффективным: исправления прикрепляются к ошибкам, отправляемым в системе отслеживания ошибок, а спустя несколько недель или месяцев эти исправления превращаются в багажник.
Отдельная проблема заключается в том, что мне нужно поддерживать частную ветвь проекта с дополнительными функциями, которые понадобятся только моей компании. Но я хочу, чтобы мой форк был в курсе последних официальных коммитов из ствола.
Я бы хотел найти решение обеих этих проблем на основе GitHub. Я хотел бы закончить с тремя вещами:
- "mirror" - Зеркало SVN GitHub, автоматически синхронизируемое с последними изменениями SVN через автоматизированный процесс (как в этой статье ), который я или другой участник, внесший исправление побежит. Это облегчит мне или кому-либо еще создание публичной или приватной ветки проекта без возни с SVN.
- "contrib" - для себя и нескольких отправителей патчей, которым я доверяю, я бы хотел установить публичный ветвь (или ветвь?) "Mirror", где мы могли бы фиксировать патчи, которые мы бы сделали хотел бы увидеть в конечном итоге показать в SVN. Это также может упростить и сделать более эффективными для основных коммиттеров извлечение исправлений обратно в SVN.
- "ourfork" - наконец, наша компания хочет не устанавливать частный ветвь "contrib", где несколько разработчиков могут добавлять частные функции, которые применимы только к реализации нашей компании
Некоторые конкретные вопросы:
- имеет ли этот подход смысл? Есть ли более простое решение, которое мы должны использовать вместо этого?
- как обеспечить синхронизацию «contrib» с «зеркалом»? Существует ли магия GitHub для автоматического применения новых коммитов, если они не конфликтуют? Предполагая, что нет, каков хороший рабочий процесс, чтобы обеспечить синхронизацию contrib с его родителем?
- "ourfork" логически будет внуком "mirror". Каков правильный рабочий процесс, чтобы поддерживать его в актуальном состоянии с изменениями из «mirror» и «contrib»? Должен ли я установить «contrib» как мой единственный пульт? Или настроить оба в качестве удаленных - и если да, то каков правильный процесс для слияния?
Я зачитал @ 10q ответ на аналогичный вопрос, и я подозреваю, что он отвечает на большинство вопросов выше, но я новичок в Git и не уверен, применим ли его ответ к моему делу.