Вытягивание из сотрудника при использовании подпозитариев - PullRequest
1 голос
/ 29 июля 2010

У нас есть несколько общих библиотек, которые существуют в качестве вложенных репозиториев в родительском репо.Если человек клонирует родительское репо, оно выглядит примерно так:

/ParentRepo
---- .hg
---- .hgsub
---- .hgsubstate
---- SharedSub1
---- SharedSub2
---- SharedSub3
---- SharedSub4
---- ParentRepo.sln

.hgsub выглядит следующим образом:

SharedSub1 = http://ourfogbugz.us.com/..../SharedSub1
SharedSub2 = http://ourfogbugz.us.com/..../SharedSub2
SharedSub3 = http://ourfogbugz.us.com/..../SharedSub3
SharedSub4 = http://ourfogbugz.us.com/..../SharedSub4

hgrc каждого подпункта выглядит примерно так:

default = http://ourfogbugz.us.com/..../SharedSub1

Довольно стандартные вещи.

Но!

Как, используя эту настройку, коллега вытаскивает из другого, не используя центральный сервер в качестве посредника?Таким образом, сотрудник A выполняет «hg serve», а B - «hg pull http://coworkerA.us.com:8000'...», но это не удастся, поскольку файл hgsub по-прежнему указывает на центральный сервер, и, таким образом, B получает изменения только от центральногосервер, и не получать никаких изменений от подпунктов А., которые не существуют на центральном сервере.

Это еще более усложняется, если центральный сервер недоступен или недоступен.Люди не могут отстраниться друг от друга напрямую, используя подпункты!

Как происходит перетаскивание между сотрудниками, используя подпункты?Редактирование файлов hgrc и hgsub не может быть и речи, потому что вам придется делать это для каждого подрепортажа (у нас их около 20) и один раз для каждого сотрудника!

Я также разместил этот вопросна Kiln StackExchange, чтобы поразить более широкую аудиторию: http://kiln.stackexchange.com/questions/1780/pulling-from-a-co-worker-when-using-subrepositories

1 Ответ

2 голосов
/ 30 июля 2010

Вы можете (и обычно должны) использовать относительные пути в ваших .hgsub entires. Если бы эти строки были:

SharedSub1 = ../SharedSub1
SharedSub2 = ../SharedSub2
SharedSub3 = ../SharedSub3
SharedSub4 = ../SharedSub4

тогда вы могли бы клонировать из центрального, от друга или местного клона самостоятельно.

...