quilt—этосистемаконтроляпатчей, вкаком-тосмыслепредыдущаяступеньэволюциисистемконтроляверсий.
Пустьесть rpm-пакетинужнообновитьеговерсию, используяновыйархивисходныхкодов. Приэтомпатчиостанутсястарыми, инегарантируется, чтоониналожатсянановуюверсию, илинепотребуетсявмешательствочеловека, из-затого, чтокакой-топатчустарел. Послетого, какновыйархивполучениVersion:исправлен, можноприбегнутькпомощиquilt:
Этакомандасоздастновуюдиректориювкоторойбудутлежатьраспакованныеисходныекоды, символическаяссылканадиректориюpatches (хранитсамифайлыпатчей) ифайлseries (хранитпорядоквкоторомпатчинужноприменять). quiltневсегдауспешносправляетсяспатчами, которыезавернутыв%if.
Идеологическипроисходитследующее, унасестькомандаquilt, что-товродеаналогаgitилиhg, деревоисходниковистекпатчей. Стекпатчейвчем-тоаналогиченревизиямвсистемахконтроляверсий. Используястекможнопереходитьоттекущегосостояниякследующему (применяяпатч, quilt push) иликпредыдущему (откатывая, quilt pop). Первоначально, мынаходимсявсамомнижнемсостоянии (немодифицированныеисходныекоды):
Дальшепопробуемналожитьпервыйпатч (здесьпотребоваласьпредварительнаяобработкаиз-захитройструктурыдиректорийвконкретномслучае),
Итакдалее, поканезакончитсявесьстекпатчей, носкореевсеготакпростооннезакончится. Задача—обновляяпатчи, устранитьконфликты. Послепринудительногоприменения (quilt push -f) следуетвручнуюпросмотретьвсеконфликтныеместаиисправитьихнужнымобразом. Каждыйпатчотслеживаеттольконекотороечислофайлов (quilt files), ноеслиотредактированфайлнеизсписка, тоегонужнодобавить (quilt add). Послетогокаквсеисправлено, нужнообновитьтекущийпатч: quilt refresh (этотакойаналог commit, которыйисправляеттекущийналоженныйпатч, основываясьнарабочейдиректорииипредыдущейспрятаннойкопии)
Пустьесть rpm-пакетинужнообновитьеговерсию, используяновыйархивисходныхкодов. Приэтомпатчиостанутсястарыми, инегарантируется, чтоониналожатсянановуюверсию, илинепотребуетсявмешательствочеловека, из-затого, чтокакой-топатчустарел. Послетого, какновыйархивполучениVersion:исправлен, можноприбегнутькпомощиquilt:
quilt setup libdc1394.spec
Этакомандасоздастновуюдиректориювкоторойбудутлежатьраспакованныеисходныекоды, символическаяссылканадиректориюpatches (хранитсамифайлыпатчей) ифайлseries (хранитпорядоквкоторомпатчинужноприменять). quiltневсегдауспешносправляетсяспатчами, которыезавернутыв%if.
Идеологическипроисходитследующее, унасестькомандаquilt, что-товродеаналогаgitилиhg, деревоисходниковистекпатчей. Стекпатчейвчем-тоаналогиченревизиямвсистемахконтроляверсий. Используястекможнопереходитьоттекущегосостояниякследующему (применяяпатч, quilt push) иликпредыдущему (откатывая, quilt pop). Первоначально, мынаходимсявсамомнижнемсостоянии (немодифицированныеисходныекоды):
>quilt top
Нетприменённыхпатчей
>quilt applied
Нетприменённыхпатчей
>quilt unapplied
patches/libdc1394.no-x11.patch
patches/libdc1394.ac.patch
patches/libdc1394-swab_fix.patch
patches/libdc1394.raw1394_set_iso_handler.patch
patches/libdc1394-v4l-2.6.38.patch
patches/libdc1394-visibility.patch
Дальшепопробуемналожитьпервыйпатч (здесьпотребоваласьпредварительнаяобработкаиз-захитройструктурыдиректорийвконкретномслучае),
>quilt push
Наложениепатча patches/libdc1394.no-x11.patch
patching file libdc1394-1.2.2/examples/Makefile.am
patching file libdc1394-2.2.1/configure.in
Текущийпатч: patches/libdc1394.no-x11.patch
>quilt top
patches/libdc1394.no-x11.patch
>quilt applied
patches/libdc1394.no-x11.patch
Итакдалее, поканезакончитсявесьстекпатчей, носкореевсеготакпростооннезакончится. Задача—обновляяпатчи, устранитьконфликты. Послепринудительногоприменения (quilt push -f) следуетвручнуюпросмотретьвсеконфликтныеместаиисправитьихнужнымобразом. Каждыйпатчотслеживаеттольконекотороечислофайлов (quilt files), ноеслиотредактированфайлнеизсписка, тоегонужнодобавить (quilt add). Послетогокаквсеисправлено, нужнообновитьтекущийпатч: quilt refresh (этотакойаналог commit, которыйисправляеттекущийналоженныйпатч, основываясьнарабочейдиректорииипредыдущейспрятаннойкопии)
>quilt refresh
Патч patches/libdc1394-v4l-2.6.38.patch обновлён