Подвижные репозитории ответвления с SUBREPOS

Я пытаюсь определить, как люди используют "репозитории ответвления", также используя subrepos.

Скажем, у меня есть repo Основное, содержащее файл решения (.NET), и заполненный с subrepos A, B, C:

/Main
    - A
    - B
    - C
    MainSolution.sln

A, B, и C, будучи совместно использованным другим "Основным" repos, очень тесно интегрируются в Основной проект. Таким образом основная функция к Основному repo потребует модификаций к subrepos (т.е. они - совместно использованные библиотеки, но очень активно разрабатываются).

Теперь пора добавить опцию. Эта функция является слишком большой, чтобы один человек обработал, и таким образом код должен будет быть продвинут к центральному repo, таким образом, другие смогут помочь. Мы должны были бы также смочь вернуться к последнему "стабильному" коду, прежде чем разработка комплекта началась в случае, если bugfix необходим. Я полагаю, что у меня есть две опции в этой точке: (1) создайте именованное ответвление в основном repo, или (2) создайте новый клон Основных. С тех пор существуют subrepos, обе из этих опций имеют последствия не подарок обычно.

Опция 1) Создание именованного ответвления, я предполагаю, позволит модификациям subrepos фиксироваться/продвигаться, но только другие люди, которые также обновили к тому ответвлению в их клоне Основных, будут затронуты, так как .hgsubstate файл прослежен. Однако subrepos получит новую голову, и таким образом (возможно) экспериментальная функция закончила бы тем, что была продвинута к центральному repo. Я понимаю это правильно?

Опция 2) существуют многочисленные защитники, "не используют названные ответвления, используют 'репозитории ответвления'", которые являются буквально клонами основного repo, но названный по-другому и существующий на центральном сервере. Это немного обращается ко мне, поскольку это, кажется, сохраняет вещи разделенными (и таким образом отсоединился от аварии как коллеги - и я! - все еще учатся Подвижный). Но этот рабочий процесс кажется полностью поврежденным, когда подрепозитории включены, начиная с создания клона Основного repo не создает новые, разделенные клоны subrepos. Это - новый клон, но это все еще указывает на тот же subrepos и таким образом изменяется сделанный на них, найдет их путь назад в subrepos! Я понимаю, что это дизайном, и это - одна из действительно прохладных вещей (мне) о Подвижном. Но как же люди используют этот рабочий процесс репозитория ответвления с подрепозиториями? Абсолютно непостижимо, что для каждого feature/experiment/version/whatever я собираюсь создать новый клон (на центральном сервере) Основного repo, И создать клоны (на центральном сервере) subrepos И изменить все пути .hgrc/.hgsub для указания на надлежащий центральный repos.

На данном этапе я просто пытаюсь понять, КАК люди работают над сложным проектом и используют subrepos с репозиториями ответвления. Какие-либо мысли?

11
задан Andrew 17 July 2010 в 23:19
поделиться

1 ответ

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

С именованными ветвями вам не нужно беспокоиться о том, что вы случайно переместите свою нестабильную ветвь разработки в стабильное репо. Именованная ветвь уже там, но она не будет получена через обновление, пока разработчик не попросит об этом.

1
ответ дан 3 December 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: