beldmit: (Программизм)
[personal profile] beldmit
Наблюдаю в дружественной конторе следующую ситуацию:

1. Есть продукт, который они пилят. С выпускаемыми версиями и прочим. При выпуске новой версии upstream-ом на неё надо переходить.

2. Есть большой патч к этому продукту разработки собственно этой конторы. Его необходимо всегда иметь в актуальном виде одним куском. Применяться он должен к апстриму.

3. Есть набор патчей третьей стороны, который должен жить отдельными кусочками, но попадать в итоговую сборку. Поштучно.

Как этот РАБКРИН лучше обустроить?

Мне в голову приходит сценарий с двумя ветками, соответствующими пп. 2 и 3, с периодическими git rebase сначала ветки со своими патчами на апстрим, а потом ветки с патчами третьей стороны - на то, что получилось в "своей" ветке. Или я неправильно понимаю, что есть git rebase?

Date: 2015-02-09 12:39 pm (UTC)
ext_605364: geg MOPO4 (geg_MOPO4)
From: [identity profile] gegmopo4.livejournal.com
Не три? Или даже четыре?

Date: 2015-02-09 01:42 pm (UTC)
ext_605364: geg MOPO4 (geg_MOPO4)
From: [identity profile] gegmopo4.livejournal.com
Одна ветка — ванилла (п.1). В неё выкладываются свежие версии апстрима и больше никаких изменений. После этого ответвляется ветка для сторонних патчей (п.3). Когда они наложены, ответвляется ветка для своих патчей (п.3). Если приходят новые сторонние патчи, они накладываются на вторую ветку и мержатс в третью. Когда выходит новая версия, обновляется первая ветка, от неё ответвляется новая вторая ветка, на которую заново накладываются сторонние патчи (или сразу мержатся из старой второй), от которой ответвляется новая третья ветка, в которую мержится старая третья ветка. В любой момент доступны апстрим, апстрим со сторонними патчами и со всеми патчами для любой версии. Если новый апстрим окажется слишком ломаным, всегда можно откатиться на старую версию со всеми патчами и продолжить накладывать свои изменения, пока апстрим не починят.

Если сторонние и свои патчи мало пересекаются и независимы, можно в третьей ветке (ответвляемой от второй) поддерживать только свои изменения, а мержить вторую с третьей в четвёртой.

Но может быть git не так работает, я с точки зрения svn и hg.

Date: 2015-02-09 03:34 pm (UTC)
From: [identity profile] besm6.livejournal.com
vanilla есть и так.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 10th, 2026 04:00 pm
Powered by Dreamwidth Studios