Я продолжаю думать, что понимаю подзадачи и то, как я могу заставить их работать в рабочих процессах моей команды, но, очевидно, я не понимаю, потому что каждый раз, когда я пытаюсь реализовать какой-то базовый рабочий процесс, что-то не получается работать правильно. *
Я прочитал почти все, что можно почитать о подпунктах онлайн, и следую всем тривиальным примерам, которые публикуют люди, но когда я пытаюсь сделать что-то более сложное. Или, может быть, я прекрасно это понимаю, и то, что я пытаюсь сделать, это просто не то, что хорошо работает.
Давайте разберемся с основами. Допустим, у меня есть удаленная «благословенная» коллекция репозиториев.
http://acme.com/BlessedRepos/ProjA
/LibA
/LibB
Итак, я делаю клон от /ProjA
до C:\ProjA
и клон * /LibA
до C:\ProjA\LibA
и /LibB
до C:\ProjA\LibB
. Я создаю свой .hgsub
файл с
LibA = http://acme.com/BlessedRepos/LibA
LibB = http://acme.com/BlessedRepos/LibB
Я совершаю все. Затем я могу нажать ProjA
, и все хорошо.
Так что теперь кто-то из моей команды может перейти к клону /PrjoA
на C:\dev\ProjA
, и это также уменьшит значения LibA
и LibB
в качестве подпунктов. Этот человек может легко толкать / вытягивать из «благословенного репо», как и я. Пока все хорошо.
Теперь я говорю: «Хорошо, команда ProjA, перестаньте продвигаться к благословенному репо, это я должен сделать после обзора вашей работы. Начиная с сегодняшнего дня, я хочу, чтобы вы все отправили свои изменения в удаленные репозитории ProjA dev и ProjA QA, расположенные по адресу:
http://acme.com/Dev/ProjA
http://acme.com/QA/ProjA
Здесь мы и останавливаемся. Попытка подтолкнуть к http://acme.com/Dev/ProjA
будет толкать только /ProjA
, в то время как /ProjA/LibA
и /ProjA/LibB
будут вытеснены обратно в их исходное местоположение в благословенном репо, а не в нужное место http://acme.com/Dev/ProjA
.
Теперь я мог бы установить свой .hgsub
файл как LibA = ../LibA
. Первоначально это работало бы, но если бы я сделал клон ProjA
из благословенного репо, он не смог бы получить LibA
или LibB
, я полагаю, потому что он ожидал найти локальные репо LibA
и LibB
как братья и сестры в репо ProjA
я клонирую. Я имею в виду, что если я клонирую на http://acme.com/BlessedRepos/ProjA
на C:\Test\ProjA
, он потерпит неудачу, потому что он ожидает найти существующее репо на C:\Test\LibA
.
Я мог бы также настроить мой hgsub как LibA = LibA
. Но сделать это не удастся, если вы попытаетесь перейти к благословенному репо, так как LibA
не является вложенным ProjA
в благословенном пространстве. Я мог бы создать их, но тогда я никогда не вернусь к http://acme.com/BlessedRepos/LibA
, только к http://acme.com/BlessedRepos/ProjA/LibA
, и тогда кажется, что с самого начала побеждал цель подпункта.
Я почти уверен, что мой первый метод мог бы сработать, если бы у меня был какой-то сценарий, который я бы запустил, который прошел и изменил бы все значения в файле .hgsub
из "благословенных" удаленных расположений в "dev" и местоположения "QA", но это кажется далеко не идеальным.
Итак. Если есть кто-то, кто действительно задирается с этим, не могли бы вы объяснить мне, где я ошибся, или как я мог добиться своего первоначального рабочего процесса, используя подпункты, или, возможно, просто подтвердить, что я иду за чем-то, что не действительно подходит для подпунктов. Если это поможет понять ситуацию, у нас, вероятно, будет что-то вроде 15-20 «продуктов / решений» и 50 «общих» проектов. Любой из 15-20 продуктов может использовать N из 50 общих проектов в своем решении.