<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - AltLinux/Sisyphus/devel/git/MergingBranches</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches</link>
<description>History/revisions of FreeSource/AltLinux/Sisyphus/devel/git/MergingBranches</description>
<language>en-us</language>
<item>
<title>2008-07-07 21:48:02</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches/show?time=2008-07-07+21%3A48%3A02</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".altlinux.sisyphus.devel.git.mergingbranches" href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;git&amp;nbsp;/&amp;nbsp;Merging&amp;nbsp;Branches&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches?time=2008-07-07+21%3A48%3A02">2008-07-07 21:48:02&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches">2008-07-07 22:25:06&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="action" style="float:right; width:250px">&lt;div class="action-content">Эта&amp;nbsp;страница была перенесена на&amp;nbsp;&lt;a href="http://altlinux.org/git/MergingBranches" target="_blank" title="" class="outerlink">altlinux.org&lt;/a>. Текст на&amp;nbsp;freesource.info заморожен.&lt;/div>&lt;/div>&lt;br />
Автоматизировать процесс можно с&amp;nbsp;помощью утилиты &lt;a href="http://lists.altlinux.org/pipermail/devel/2007-November/065830.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />gear-merge&lt;/a>. Утилита довольно простая. Краткий синтаксис правил описан в&amp;nbsp;заголовке (vim /usr/bin/gear-merge), опции описаны в&amp;nbsp;man-странице.&lt;br />
Вот&amp;nbsp;так выглядит файл правил для&amp;nbsp;мёржа на&amp;nbsp;примере inn.git:&lt;br />
% cat&amp;nbsp;.gear/merge&lt;br />
merge: upstream patches/debian/0001-libdb-4.4&lt;br />
merge: patches/debian/0001-libdb-4.4 patches/alt/001-cdb&lt;br />
merge: patches/alt/001-cdb patches/alt/002-db4&lt;br />
merge: patches/alt/002-db4 patches/alt/003-docs&lt;br />
merge: patches/alt/003-docs patches/alt/004-gdbm&lt;br />
merge: patches/alt/004-gdbm patches/alt/005-pie&lt;br />
merge: patches/alt/005-pie patches/alt/&lt;span class="nobr">006&amp;ndash;2&lt;/span>.4.2-alt&lt;br />
merge: patches/alt/&lt;span class="nobr">006&amp;ndash;2&lt;/span>.4.2-alt patches/alt/007-krb5&lt;br />
merge: patches/alt/007-krb5 patches/alt/008-Makefile&lt;br />
merge: patches/alt/008-Makefile master&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Автоматизировать процесс можно с&amp;nbsp;помощью утилиты &lt;a href="http://lists.altlinux.org/pipermail/devel/2007-November/065830.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />gear-merge&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2007-09-16 22:44:33</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches/show?time=2007-09-16+22%3A44%3A33</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;devel&amp;nbsp;/&amp;nbsp;git&amp;nbsp;/&amp;nbsp;Merging&amp;nbsp;Branches&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches?time=2007-09-16+22%3A44%3A33">2007-09-16 22:44:33&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/devel/git/MergingBranches?time=2008-07-07+21%3A48%3A02">2008-07-07 21:48:02&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h8069-1">&lt;/a>&lt;h1>Как хранить каждый патч в&amp;nbsp;отдельном бранче&lt;/h1>
&lt;em>статья на&amp;nbsp;основе письма raorn&lt;/em>&lt;br />
Как&amp;nbsp;вы&amp;nbsp;все наверно знаете, наш&amp;nbsp;mutt1.5 это&amp;nbsp;такой mutt2ng-new с&amp;nbsp;большим количеством &amp;laquo;левых&amp;raquo; патчей.  Из-за такого количества каждое обновление версии превращается в&amp;nbsp;изощрённую пытку для&amp;nbsp;мантейнера.  По&amp;nbsp;идее git&amp;nbsp;должен бы&amp;nbsp;помочь решить подобные проблемы...&lt;br />
Сначала я&amp;nbsp;посмотрел на&amp;nbsp;kernel-image.  Там&amp;nbsp;каждый патч живёт в&amp;nbsp;отдельном бранче, перед релизом всё мержится в&amp;nbsp;master.  Примерно так:&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent"> &lt;/div>&lt;/div>&lt;/div>
По&amp;nbsp;каждому патчу конфликт разруливается сначала в&amp;nbsp;patchX, потом в&amp;nbsp;merge-X.  При&amp;nbsp;обновлении версии upstream и/или patchX приходится делать маленький закат солнца вручную с&amp;nbsp;повторным разруливаением всех конфликтов.  Это&amp;nbsp;не&amp;nbsp;ядро и&amp;nbsp;патчи имеют обыкновение пересекаться во&amp;nbsp;множестве мест.&lt;br />
Результат этого изврата ещё некоторое время можно будет наблюдать в&amp;nbsp;моём mutt1.5.git.&lt;br />
Есть второй способ, который посоветовал мне&amp;nbsp;voins (на примере его&amp;nbsp;stklos.git и&amp;nbsp;&lt;span class="missingpage">Window&amp;nbsp;Maker&lt;/span>&lt;a href="http://freesource.info/wiki/WindowMaker/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>.git).  upstream мержится в&amp;nbsp;patchA, patchA в&amp;nbsp;patchB и&amp;nbsp;так далее.  При&amp;nbsp;этом конфликты разруливаются практически только один раз&amp;nbsp;при мерже patchN-1 в&amp;nbsp;patchN.&lt;a name="h8069-2">&lt;/a>&lt;h2>Автоматизация процесса&lt;/h2>
Автоматизировать процесс можно с&amp;nbsp;помощью утилиты &lt;a href="http://lists.altlinux.org/pipermail/devel/2007-November/065830.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />gear-merge&lt;/a>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8069-1">&lt;/a>&lt;h1> Борьба с&amp;nbsp;бранчами в&amp;nbsp;git &lt;/h1>
Date: Thu, 6 Sep&amp;nbsp;2007 12:58:03 +0400&lt;br />
From: &amp;#8220;Alexey I. Froloff&amp;#8221; &amp;lt;raorn@&amp;gt;&lt;br />
To: ALT&amp;nbsp;Linux Sisyphus &amp;lt;sisyphus@&amp;gt;&lt;br />
Subject: [sisyphus] [HOWTO] как&amp;nbsp;я&amp;nbsp;делал ктулху в&amp;nbsp;git'е mutt1.5&lt;br />
User-Agent: &lt;span class="missingpage">Mutt&amp;nbsp;/&amp;nbsp;1&lt;/span>&lt;a href="http://freesource.info/wiki/Mutt/1/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>.5.14 (&lt;span class="nobr">2007&amp;ndash;02&amp;ndash;12&lt;/span>)&lt;br />
Как&amp;nbsp;вы&amp;nbsp;все наверно знаете, наш&amp;nbsp;mutt1.5 это&amp;nbsp;такой mutt2ng-new &lt;br />
с&amp;nbsp;большим количеством &amp;laquo;левых&amp;raquo; патчей.  Из-за такого количества&lt;br />
каждое обновление версии превращается в&amp;nbsp;изощрённую пытку &lt;br />
для&amp;nbsp;мантейнера.  По&amp;nbsp;идее git&amp;nbsp;должен бы&amp;nbsp;помочь решить подобные&lt;br />
проблемы...&lt;br />
Сначала я&amp;nbsp;посмотрел на&amp;nbsp;kernel-image.  Там&amp;nbsp;каждый патч живёт &lt;br />
в&amp;nbsp;отдельном бранче, перед релизом всё мержится в&amp;nbsp;master.  &lt;br />
Примерно так:&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;/div>&lt;/div>&lt;/div>&lt;/div>
По&amp;nbsp;каждому патчу конфликт разруливается сначала в&amp;nbsp;patchX, потом&lt;br />
в&amp;nbsp;merge-X.  При&amp;nbsp;обновлении версии upstream и/или patchX приходится&lt;br />
делать маленький закат солнца вручную с&amp;nbsp;повторным разруливаением&lt;br />
всех конфликтов.  Это&amp;nbsp;не&amp;nbsp;ядро и&amp;nbsp;патчи имеют обыкновение&lt;br />
пересекаться во&amp;nbsp;множестве мест.&lt;br />
Результат этого изврата ещё некоторое время можно будет наблюдать&lt;br />
в&amp;nbsp;моём mutt1.5.git.&lt;br />
Есть второй способ, который посоветовал мне&amp;nbsp;voins (на примере &lt;br />
его&amp;nbsp;stklos.git и&amp;nbsp;&lt;span class="missingpage">Window&amp;nbsp;Maker&lt;/span>&lt;a href="http://freesource.info/wiki/WindowMaker/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>.git).  upstream мержится в&amp;nbsp;patchA,&lt;br />
patchA в&amp;nbsp;patchB и&amp;nbsp;так далее.  При&amp;nbsp;этом конфликты разруливаются&lt;br />
практически только один раз&amp;nbsp;при мерже patchN-1 в&amp;nbsp;patchN.&lt;br />
Надеюсь принцип ясен ;-)&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
