LINUX.ORG.RU

[mercurial][branches] Объясните, люди добрые

 


0

0

Ну, вот, допустим, у меня есть репозиторий (псевдовывод):

$ hg branches
0.x                          x:502665f0749f
1.x                          x:502665f0749f
client0-productname32        x:502665f0749f
client2-productname41        x:502665f0749f
client6-productname66        x:502665f0749f
client9-productname99        x:502665f0749f

Допустим, в бранчах 0.x и 1.x есть не очень похожее ПО (буду называть его библиотекой), которое было чем-то одним сначала, но потом начало развиваться совершенно разными путями, сохраняя лишь некоторый общий код, который так же время от времени требуется синхронизировать.

Все остальные бранчи только и делают, что берут свежие срезы библиотеки из 0.x или 1.x, потом библиотека может дописываться в бранче типа clientx-productnamex, и ее требуется мержить с веткой 0.x или 1.x. Каждый бранч clientx-productnamex содержит код библиотеки и немного своих файлов, использующих api библиотеки.

И как это сделать? Или я не должен этого хотеть? Просто когда я удаляю файл в одном бранче, он удаляется в другом. Такое поведение мне непонятно. http://mercurial.selenic.com/wiki/NamedBranches читал, признаюсь, не осилил.



Последнее исправление: cheerfulboy (всего исправлений: 1)

> Допустим, в бранчах 0.x и 1.x есть не очень похожее ПО (буду называть его библиотекой), которое было чем-то одним сначала, но потом начало развиваться совершенно разными путями, сохраняя лишь некоторый общий код, который так же время от времени требуется синхронизировать.

Может, вам выделить его в отдельный репозиторий?

когда я удаляю файл в одном бранче, он удаляется в другом. Такое поведение мне непонятно.

Расскажи об этом подробнее :)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Может, вам выделить его в отдельный репозиторий?

Пока это не нужно, так как кодовая база не сильно отличается.

Расскажи об этом подробнее :)

По-моему, я разобрался уже. hg up branchname решил проблему. Просто не думал, что при переключении на другой бранч нужно делать hg up. :)

cheerfulboy
() автор топика
Ответ на: комментарий от tailgunner

Пофиг. Вот только не могу разобраться, как мержить из одного бранча в другой. Чтобы мержить из бранча X в бранч Y, нужно сделать hg up Y && hg merge X? Все же правильно? :)

cheerfulboy
() автор топика
Ответ на: комментарий от LamerOk

Не понравилось. Хотело бы мержить файлы, или хотя бы директории. Просто после мержа приходится много мусора выгребать, от бранча. Что делать — не ясно.

cheerfulboy
() автор топика
Ответ на: комментарий от LamerOk

Но в том дело, что все бранчи типа client9-productname99, содержат в себе директорию библиотеки и код, использующий эту библиотеку. И как раз этот код и является мусорным для основного бранча библиотеки. Так что твой совет, К.О. не является полезным.

cheerfulboy
() автор топика
Ответ на: комментарий от cheerfulboy

В этом случае библиотека выделяется в отдельный репозиторий и из мусорного проекта используется в виде subrepos.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Почитал про subrepos. Остался только один вопрос — subrepos сейчас рекомендуемый путь или все-таки юзать hgforest какой-нибудь?

cheerfulboy
() автор топика
Ответ на: комментарий от cheerfulboy

forest deprecated. subrepos входит в официальную поставку. я на subrepos все свои проекты перевел. мегаудобная штука.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.