Применение патчей к ядру Linux. Тканевые патчи для глаз. Есть ли альтернативы программе "patch"

В дополнение к объяснению того, как применять и отменять патчи, здесь приводится краткое описание структуры различных ветвей ядра (и примеров того, как применять их конкретные патчи).

Что такое патч (patch)?

Патч, или заплатка — это небольшой текстовый документ, содержащий суть изменений между двумя разными версиями исходных текстов. Патчи создаются с помощью программы "diff". Для правильного применения патча вам нужно знать, на основе чего он был создан, и в какую новую версию патч превратит исходные тексты ядра. И то и другое может быть представлено в метаданных файла патча и, возможно, в его названии.

Как применить или отменить патч?

Патч применяется с помощью программы "patch". Эта программа читает файл различий (или патч) и делает изменения в нужных местах исходных текстов.

Патчи для ядра Linux генерируются относительно родительского каталога, содержащего исходные тексты ядра.

Это означает, что пути к файлам внутри файла патча содержат имя директории исходных текстов ядра, относительно которой этот патч генерировался (или имена некоторых других директорий подобно «a/» или «b/»).

Поскольку это имя вряд ли будет совпадать с именем директории исходных текстов ядра на вашей машине (хотя часто оно помогает увидеть, для какой версии ядра был создан данный патч), вам следует перейти в свою директорию, содержащую исходные тексты ядра и затем отбросить первый элемент в путевых именах файлов в файле патча до того, как его применить (для этого служит ключ -p1 в программе "patch").

Чтобы отменить примененный патч, используйте ключ -R. Например, если вы применили патч следующим образом:

Patch -p1 < ../patch-x.y.z

то отменить его можно так:

Patch -R -p1 < ../patch-x.y.z

Как передавать файл заплатки/патча программе "patch"?

Это (как и в других Unix-подобных системах) может быть сделано несколькими способами. Во всех примерах, указанных ниже, я передаю файл (в разархивированном виде) программе через стандартный ввод, используя следующий синтаксис:

Patch -p1 < path/to/patch-x.y.z

Программе "patch" можно передать имя файла, используя ключ -i, как в следующем примере:

Patch -p1 -i путь/к/патчу-x.y.z

Если файл патча содержится в архиве gzip или bzip, и вы не хотите распаковывать его заранее, можно вызвать "patch" так:

Zcat path/to/patch-x.y.z.gz | patch -p1 bzcat path/to/patch-x.y.z.bz2 | patch -p1

Если файл патча содержится в архиве, и вы хотите разархивировать его вручную до применения, (в примерах ниже это предполагается), это можно сделать так:

Gunzip patch-x.y.z.gz bunzip2 patch-x.y.z.bz2

Это даст вам обычный текстовый файл, который можно передавать программе "patch" через стандартный ввод или через ключ -i, как вам захочется.

К числу других интересные ключей программы "patch" относятся -s, вынуждающий программу не выводить никаких сообщений, кроме сообщений об ошибках, что позволяет лучше их заметить, и ключ --dry-run который заставляет программу просто выдать листинг того, что будет происходить, а в реальности ничего не менять. Наконец, ключ --verbose указывает программе "patch" о потребности вывода максимума информации о происходящем.

Основные ошибки

Когда программа "patch" применяет патч, она пытается проверить файл разными способами. В частности, проверяется, что файл является допустимым патч-файлом и что код, окружающий биты, которые должны быть изменены, соответствует контексту патча.

Если программа "patch" считает, что в патче что-то выглядит неправильно, она может выбрать один из вариантов поведения — отказаться проводить изменения и закончить работу или попытаться найти способ применения патча с небольшими изменениями.

Один из примеров ситуации «что-то не так», которую программа пытается исправить, — это когда контекст изменений присутствует, нужные строки находятся, но у них другие номера. Так может случиться, к примеру, если программа "patch" делает изменения в середине файла, но по каким-то причинам несколько строк в начале файла были добавлены или удалены. Если все остальное в порядке, программа обычно подгоняет номера строк и применяет патч.

Всякий раз, когда программа "patch" применяет патч с его предварительной модификацией, она сообщает вам, что патч применен с "подгонкой" ("fuzz").

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

Когда программа встречает изменения, которые она не может сделать даже с подгонкой, она отвергает их и производит файл с расширением.rej (reject file). Вы можете прочитать его, чтобы точно узнать, какие изменения не удалось применить, и при желании что-то исправить.

Если вы не применяете к исходным текстам своего ядра неофициальные патчи, а используете только патчи с ресурса kernel.org, применяя их в правильном порядке, и не делаете самостоятельных изменений в исходных текстах ядра, то вы никогда не увидите сообщений "fuzz" или "reject" от программы "patch". Если они будут выдаваться, это свидетельствует об порче ваших локальных исходных текстов или скаченного патча. Вам стоит попробовать снова закачать патч, а если и это не устранит проблемы, то следует скачать полные исходные тексты ядра с kernel.org.

Давайте посмотрим на другие сообщения, которые может генерировать программа "patch".

Если программа останавливается и выводит сообщение "File to patch:", значит она не смогла найти файл патча. Обычно это означает, что вы забыли указать ключ -p1 или находитесь не в нужной директории. Но иногда так случается, когда вы применяете патч, для которого нужен ключ -p0, а не -p1 (исследуйте файл патча на предмет этого, и если это так, то это ошибка человека, создавшего патч, и она поправима).

Если вы получили сообщение "Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines)." или подобное, это означает, что программа "patch" регулировала применяемые изменения (в данном случае пришлось передвинуться на 7 строк от того места, где они должны были применяться, чтобы их стало можно применить). Результирующий файл может получиться правильным или неправильным в зависимости от причин, по которым исходный файл был не таким, как ожидалось. Так часто случается, когда вы пытаетесь применить патч не к той версии ядра.

Если вы получили сообщение "Hunk #3 FAILED at 2387.", это означает что программа не смогла применить патч даже с подгонкой. В этом случае генерируется файл.rej с информацией о неудавшемся изменении, а также файл с расширением.orig, содержащий оригинальный текст, который не удалось заменить.

Сообщение "Reversed (or previously applied) patch detected! Assume -R? [n]" означает, что программа обнаружила, что патч уже применен.

Если вы действительно применяли этот патч и вторичное применение — это ошибка, нажмите [n] и завершите выполнение программы. Если вы применяли его, а теперь хотели отменить, просто забыв ключ указать -R, нажмите [y]. Такое также случается, когда человек, создававший патч, поменял местами исходный и целевой каталоги, и в этом случае применение патча и заключается в отмене изменений.

Сообщение "patch: **** unexpected end of file in patch" или "patch unexpectedly ends in middle of line" означает, что программа не может обнаружить в файле патча нужное содержание. Это значит, что либо вы некорректно загрузили патч, либо пытаетесь применить патч не в разархивированном виде, либо применяете патч, переданный через почтовый клиент или что-то и подобное, разбивающее длинные строки на две. Зачастую такие предупреждения могут легко быть устранены путем объединения (конкатенации) таких двойных строк.

Как ранее указывалось, эти ошибки не могут проявиться, когда вы применяете официальные патчи с ресурса kernel.org в правильном порядке и к не измененным исходным текстам ядра. Таким образом, если это случается с патчами с kernel.org, это обозначает искажение патча при загрузке или исходных текстов на вашей машине, и вам стоит полностью заново перекачать исходные тексты ядра или патч, который вы намерены применить.

Есть ли альтернативы программе "patch"?

Они есть.

Можно использовать программу "interdiff" (http://cyberelk.net/tim/patchutils/) для создания патча, представляющего разницу между двумя патчами, и дальнейшего его применения.

Она позволит вам перейти, например, от 2.6.12.2 к 2.6.12.3 за один шаг. Флаг -z программы interdiff позволяет работать с патчами в архивах gzip и bzip2, не извлекая их заранее вручную и без использования zcat и bzcat.

Вот пример:

Interdiff -z ../patch-2.6.12.2.bz2 ../patch-2.6.12.3.gz | patch -p1

Однако, хотя эта программа поможет вам сэкономить один или два шага, рекомендуется применять все шаги, поскольку в некоторых случаях interdiff может сработать неправильно.

Другой альтернативой является сценарий "ketchup", написанный на языке python, который автоматически скачивает и применяет патчи (http://www.selenic.com/ketchup/).

Другими интересными инструментами являются diffstat, который показывает сводку изменений, сделанных программой patch; lsdiff, который выводит краткий перечень файлов, затрагиваемых заданным патч-файлом, вместе с номерами изменяемых строк; и grepdiff, показывающий список файлов, модифицируемых патчем, для которых элементы патча содержат заданное регулярное выражение.

Где я могу скачать патчи?

Не инкрементальность патча означает, например, что патч 2.6.12.3 подходит для обновления основной версии 2.6.12, но не промежуточной версии 2.6.12.2. Для применения патча 2.6.12.3 к существующему ядру 2.6.12.2 вы должны сперва отменить патч 2.6.12.2 (перейти назад к версии 2.6.12), а затем применить патч 2.6.12.3.

Вот небольшой пример:

$ cd ~/linux-2.6.12.2 # переход в директорию текстов ядра

$ patch -p1 -R < ../patch-2.6.12.2 # отмена 2.6.12.2 патча

$ patch -p1 < ../patch-2.6.12.3 # применение нового 2.6.12.3 патча

$ cd .. $ mv linux-2.6.12.2 linux-2.6.12.3 # переименование

Ядра -rc: релиз-кандидатные ядра

Это опытные ядра, выпускаемые Линусом, когда он сочтет, что текущее дерево git (приложение управления исходными текстами ядра) находится в состоянии, достаточно пригодном для тестирования.

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

Это хороший выбор для тех, кто хочет тестировать новые ядра, но, на самом деле, не хочет экспериментировать. (Таким людям следует прочитать ниже разделы -git и -mm ниже).

Патчи -rc — не инкрементальные, они применяются к базовому ядру 2.6.x , подобно патчам 2.6.x.y, отмеченным выше. Часть номера версии ядра до суффикса -rcN указывает номер версии ядра, в которую, в конечном счете, все должно превратиться.

Таким образом, 2.6.13-rc5 означает, что это пятый кандидат-релиз для ядра 2.6.13, и патч должен применяться к версии 2.6.12.

Вот три примера наложения этого патча:

# первый пример, делающий из 2.6.12 версию 2.6.13-rc3

$ cd ~/linux-2.6.12 # переход в директорию текстов ядра

$ patch -p1 < ../patch-2.6.13-rc3 # применение патча

$ cd .. $ mv linux-2.6.12 linux-2.6.13-rc3 # переименование

# переход из 2.6.13-rc3 в 2.6.13-rc5 $ cd ~/linux-2.6.13-rc3 # переход в директорию текстов ядра

$ patch -p1 -R < ../patch-2.6.13-rc3 # отмена патча 2.6.13-rc3

$ patch -p1 < ../patch-2.6.13-rc5 # применение нового 2.6.13-rc5 патча

$ cd .. $ mv linux-2.6.13-rc3 linux-2.6.13-rc5 # переименование

# наконец попытка перехода от 2.6.12.3 к 2.6.13-rc5

$ cd ~/linux-2.6.12.3 # переход в директорию

$ patch -p1 -R < ../patch-2.6.12.3 # отмена 2.6.12.3 патча

$ patch -p1 < ../patch-2.6.13-rc5 # применение 2.6.13-rc5 патча

$ cd .. $ mv linux-2.6.12.3 linux-2.6.13-rc5 # переименование

Ядра -git

Эти ежедневные снимки дерева ядра Линуса (сделанные в репозитарии git, поэтому такое название).

Эти патчи обычно ежедневные и представляют текущее состояние версии Линуса. Они более экспериментальные, чем -rc ядра, поскольку генерируются автоматически даже без беглого взгляда на их работоспособность.

Патчи -git — не инкрементальные и применяются к базовому ядру 2.6.х или базовому ядру 2.6.x.rc, что видно из их имен. Патч с именем 2.6.12-git1 применяется к ядру 2.6.12, а патч с именем 2.6.13-rc3-git2 — к 2.6.13-rc3.

Вот несколько примеров применения патчей:

# из 2.6.12 к 2.6.12-git1

$ cd ~/linux-2.6.12 # переход в нужный каталог

$ patch -p1 < ../patch-2.6.12-git1 # применение патча 2.6.12-git1

$ cd .. $ mv linux-2.6.12 linux-2.6.12-git1 # переименование

# от 2.6.12-git1 к 2.6.13-rc2-git3

$ cd ~/linux-2.6.12-git1 # переход в нужную директорию

$ patch -p1 -R < ../patch-2.6.12-git1 # отмена патча 2.6.12-git1 # теперь вы имеете ядро 2.6.12

$ patch -p1 < ../patch-2.6.13-rc2 # применение патча 2.6.13-rc2 # ядро теперь 2.6.13-rc2

$ patch -p1 < ../patch-2.6.13-rc2-git3 # применение патча 2.6.13-rc2-git3 # ядро теперь 2.6.13-rc2-git3

$ cd .. $ mv linux-2.6.12-git1 linux-2.6.13-rc2-git3 # переименование

Ядра -mm

Это экспериментальные ядра, выпускаемые Андрю Мортоном (Andrew Morton).

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

После того, как некоторый патч доказывает свою ценность в ветке -mm в течении какого-то времени, Андрю предлагает его Линусу для включения в основную ветку.

Хотя по установленным правилам эти патчи передаются Линусу через ветку -mm, эти правила не всегда соблюдаются. Мейнтейнеры подсистем (или просто разработчики) иногда пересылают свои патчи напрямую Линусу, даже если они были объединены и протестированы в -mm (а иногда даже без предварительного тестирования в -mm).

Для обеспечения максимального тестирования в большинстве случаев следует стремиться получать патчи через -mm.

Эта ветка находится в постоянном развитии и содержит многочисленные экспериментальные возможности; имеется много отладочных патчей, не пригодных для магистральных веток и т.д. Она является наиболее экспериментальной из всех ветвей, описываемых в данном документе.

Эти ядра не подходят для использования в системах, которые должны быть стабильным, при их использовании имеется больше риска, чем при работе с ядрами из какой-либо другой ветки (не забывайте о резервном копировании — это нужно делать при использовании любого экспериментального ядра, и тем более при работе с ядрами из ветки -mm).

Для этих ядер, в дополнение ко всем другим экспериментальным патчам, как правило, поддерживаются различные изменения к основным ядрам ветки -git ядер к моменту выпуска.

Тестирование ядер -mm является весьма похвальным занятием и заключается в том, чтобы отсеять регрессии, отказы, повреждения данных(и другие ошибки) до их применения Линусом в основных ветвях. Но тестировщики ветви -mm должны понимать, что в этих версиях ошибок больше, чем в любой другой.

Версии ядер -mm не выпускаются по какому-либо установленному плану, но обычно в промежутке между выпусками ядер -rc выходит несколько версий ядра -mm (обычно от одной до трех). Патчи ветки -mm применяются к базовому ядру 2.6.x (до выхода -rc версии) или к ветке -rc Линуса.

Вот несколько примеров того, как их применять:

# переход от 2.6.12 к 2.6.12-mm1 $ cd ~/linux-2.6.12 # переход в директорию 2.6.12

$ patch -p1 < ../2.6.12-mm1 # применение патча 2.6.12-mm1

$ cd .. $ mv linux-2.6.12 linux-2.6.12-mm1 # переименование

# переход от 2.6.12-mm1 к 2.6.13-rc3-mm3 $ cd ~/linux-2.6.12-mm1 $ patch -p1 -R < ../2.6.12-mm1 # отмена патча 2.6.12-mm1 # теперь вы имеете ядро 2.6.12

$ patch -p1 < ../patch-2.6.13-rc3 # применение патча 2.6.13-rc3 # теперь вы имеете ядро 2.6.13-rc3

$ patch -p1 < ../2.6.13-rc3-mm3 # применение патча 2.6.13-rc3-mm3

$ cd .. $ mv linux-2.6.12-mm1 linux-2.6.13-rc3-mm3 # переименование

На этом список разъяснений по различным ядра деревьев можно закончить.

Я надеюсь, что вам теперь ясно, как применять различные патчи и помочь в тестировании ядер.

Особая благодарность Рэнди Данлэп (Randy Dunlap), Ролфу Айке Беру (Rolf Eike Beer), Линусу Торвальсу (Linus Torvalds), Бого Эггерту (Bodo Eggert), Йоханнесу Стезенбаху (Johannes Stezenbach), Гранту Коди (Grant Coady), Павлу Мачеку (Pavel Machek) и другим, которых я забыл указать, за помощь в создании данного документа.

Содержание статьи:

Патчи для глаз - это косметические накладки, визуально похожие на пластыри, которые борются с проявлениями усталости, отеками, синяками и морщинками. Кожа в этой области сильно страдает от негативного внешнего воздействия, быстро стареет, складки появляются даже у молодых девушек. Патчи со своей высокой эффективностью - незаменимое экспресс-средство для ухода за тонким слоем дермы вокруг глаз.

Польза патчей для кожи вокруг глаз

Маски-патчи - это косметический продукт высшего уровня, его состав разработан таким образом, чтобы рабочие вещества мгновенно проникали в клетки и полностью усваивались, оказывая мощное воздействие на кожу. Базовый состав пропитки накладок в форме полумесяца - это укрепляющие и увлажняющие растительные компоненты в тандеме с аминокислотами, гиалуроновой кислотой, антиоксидантами, пептидами и коллагеном. Патчи для глаз имеют разную функциональную направленность в зависимости от состава.

Полезные свойства патчей для глаз от отеков

Одна из самых распространенных проблем, с которой женщина сталкивается каждое утро - это отеки под глазами. Иногда они появляются из-за чрезмерного употребления жидкости накануне, а бывает, такое состояние является возрастной особенностью человека. С этим приходится бороться каждый день. Чтобы решить проблему, необходимо использовать специальную линию пропитанных накладок против отечности. Благодаря составу этого продукта припухлость сойдет уже после первого применения.

Чем полезны патчи от отеков:

  • Выводят лишнюю влагу . Это происходит за счет того, что в состав входит экстракт конского каштана, оказывающий мягкий дренирующий эффект и улучшающий кровообращение дермы.
  • Восстанавливают и укрепляют сосуды . Отечность - это признак слабых сосудов вокруг глаз. Комплекс витаминов и натуральных масел в составе экспресс-маски мгновенно решает эту проблему.
  • Питают и улучшают общее состояние кожи . Витамин Е, который является мощным антиоксидантом, дарит здоровый вид, избавляя от припухлости и насыщая клетки полезными микроэлементами.
  • Делают кожу гладкой . Сложные химические вещества отвечают за быстрое усваивание клетками рабочих компонентов. После такого средства дерма становится гладкой, а отеки проходят.

Важно! Если отеки не проходят после использования качественных косметологических средств, и человек при этом ведет здоровый образ жизни, необходимо обратиться за консультацией к специалисту. Часто они являются признаком заболеваний внутренних органов.

Целебные свойства патчей для глаз от морщин


Морщины - это не всегда признак старения кожи, в первую очередь их причина кроется в плохом увлажнении дермы. Насытив поры высокоэффективными увлажняющими компонентами, эту проблему можно решить. Маски-патчи для глаз разработаны для борьбы со складками любой глубины. Мощный состав выравнивает их за несколько процедур.

На сегодняшний день выделяют две основные линии патчей против морщин:

  1. С гиалуроновой кислотой . Этот компонент заполняет морщинки, борется со свободными радикалами, оказывая глубокое увлажняющее и смягчающее действие. В состав патчей этого типа входят мощные стимуляторы упругости - наночастицы, пептиды, растительные экстракты, антиоксиданты. Есть и специальная серия патчей с гиалуронкой, разработанная для женщин после 50-ти лет, куда добавлены ботоксоподобные вещества по типу аргинина, который не только разглаживает морщины, но и осветляет дерму, убирает возрастную пигментацию. Результат этих средств - очень достойный, но недолговечный, чтобы его продлить, надо пользоваться гиалуроновыми патчами хотя бы 1 раз в неделю.
  2. С золотом . В состав этих патчей входят ионы металла, стимулирующие синтез естественного коллагена и замедляющие процесс распада эластина. Они больше подходят для молодых женщин, столкнувшихся с появлением мимических морщин, которые еще называют гусиными лапками. С такими складочками патчи с золотом справляются очень хорошо, стимулируя рост новых клеточек, обновляя дерму. Эти маски обогащены глицерином и витамином Е, которые оказывают увлажняющее действие, а также витаминами В и С, питающими и успокаивающими дерму. Эти средства дают мгновенный результат, разглаживая мимические морщинки уже после первого применения.

Эффективность патчей от синяков под глазами


Темные круги под глазами - верный признак накопившейся усталости или хронических проблем с почками. Быстро убрать недостаток можно при помощи специальных масок-патчей. Это легкий тип экспресс-ухода, направленный на питание, увлажнение и отбеливание дермы.

В состав патчей от синяков входит:

  • Пантенол - успокаивает клеточки, способствуя заживлению и укреплению стенок сосудов.
  • Кофеин - улучшает кровообращение, препятствует образованию жировых клеток.
  • Эфирное масло мяты - оказывает легкое тонизирующее и омолаживающее действие.
  • Фруктовые и молочные кислоты - насыщают дерму витаминами.
  • Винная кислота - восстанавливает цвет кожи, отбеливает темные места.

Обратите внимание! Перед использованием патчей от темных кругов их следует поместить ненадолго в холодильник. Низкая температура хорошо влияет на состояние сосудов.

Противопоказания к применению патчей для глаз


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

Чтобы избежать аллергии, пользоваться этими масками нужно осторожно. Сначала следует их проверить: для этого положите средство на внутреннюю сторону запястья и подождите. Если реакции нет, все равно не пользуйтесь патчами каждый день, так как аллергены имеют свойство накапливаться и могут «выстрелить» через несколько дней.

В каких еще случаях нельзя использовать такие пластыри:

  1. При аллергическом коньюктивите. Состав пропитки может ухудшить ваше состояние.
  2. Если на коже есть ссадины, порезы или другие повреждения.
  3. При сильно выраженном куперозе. Некоторые компоненты патчей могут сделать красные сосуды более заметными.
К сожалению, судя по отзывам, часто женщины приобретают некачественный продукт, ухудшающий состояние кожи. В результате после патчей могут появиться высыпания, раздражение, и что самое худшее - сильные отеки. С такими дефектами часто приходится обращаться к врачу. В 80% случаев подобная реакция возникает из-за гиалуроновой кислоты, которая входит в состав большинства пластырей.

Основные виды патчей для глаз

Экспресс-маски под глаза в виде лепестков отличаются не только по своему составу, но и по текстуре. Сначала на рынке косметических средств появились тканевые патчи, а буквально несколько лет назад разработали гидрогелевые пластыри. Даже если предназначение косметических пластырей одно, их воздействие на кожу отличается из-за текстуры.

Гидрогелевые патчи для глаз


Гидрогелевые пластыри под глаза сделаны из медицинского полимера, который используют для создания имплантов, или из натурального полимера, полученного из морских водорослей.

Они дают очень быстрый результат, это возможно, потому что:

  1. Уникальная основа патчей совмещает разные ингредиенты, которые решают сразу несколько проблем: разглаживают морщины, убирают отеки, напитывают кожу полезными микроэлементами.
  2. Полимер оказывает на дерму давление и провоцирует быстрее синтезировать новые, здоровые клетки.
  3. Сам по себе гелий, даже без дополнительных пропиток, дает лифтинг-эффект, который сохраняется в течение суток.
  4. Тонкая желеобразная текстура патча обеспечивает плотное прилегание маски к коже, что гарантирует 100% усваивание пропитки и соответственно всех полезных компонентов.

Обратите внимание! Гидрогелевые патчи обладают выраженным разглаживающим действием, поэтому их лучше выбирать женщинам, чья кожа потеряла упругость, или когда в районе глаз залегли глубокие морщины.

Тканевые патчи для глаз


Тканевые патчи - это хлопковые клейкие пластыри, пропитанные полезными компонентами. По текстуре такие косметические средства напоминают влажную салфетку. В отличие от гидрогелевых аналогов, после их использования остается ощущение липкости на коже, потому что не все ингредиенты поглощаются клетками. Несмотря на это, хлопковые патчи также имеют неоспоримые плюсы.

Полезные свойства тканевых пластырей для глаз:

  • Улучшают кровообращение и укрепляют стенки сосудов . Состав пропитки хорошо усваивается верхним слоем эпидермиса. Кожа после таких средств выглядит более здоровой и свежей.
  • Помогают избавиться от отеков, синяков и мелких морщинок . В большинстве случаев хлопковые пластыри пропитываются витамином Е, гиалуронкой и растительными экстрактами. Эти компоненты проникают в дерму и выполняют свое предназначение.
  • Эффективность . Чтобы кожа вокруг глаз выглядела ухоженной и отдохнувшей, рекомендуется наносить эти средства на глаза на ночь, и утром можно будет увидеть в зеркале прекрасной результат.
Конечно, убрать глубокие возрастные складочки тканевым патчам не под силу, потому что они не дают эффекта плотного прилегания к коже. И результат держится всего несколько часов, но в любом случае это хорошее бюджетное средство, позволяющее при регулярном использовании держать кожу вокруг глаз в тонусе.

Как выбрать лучшие патчи для глаз


Сегодня на рынке косметики представлено немало разновидностей антивозрастных и успокаивающих патчей. Они пользуются невероятной популярностью, потому что могут по эффективности заменить даже инъекцию ботокса. Но многие из них могут быть подделкой известных брендов.

Чтобы гарантировано получить обещанный результат, при покупке обязательно обращайте внимание на состав и наличие сертификата качества. Кроме этого, на упаковке указано, с какого возраста рекомендуется использовать те или иные косметические наклейки. Испробовав несколько вариантов патчей, вы определите, какой именно продукт вам подходит.

К самым эффективным средствам относятся:

  • Powercell Eye Urgency . Антиоксиданты в составе маски дарят коже упругость и молодость, а растительные компоненты оказывают длительное тонизирующее действие.
  • Collagen-Fiber Eye Pads . В составе есть коллаген и олигопептид из семян гибискуса. Эти компоненты уменьшают глубину уже имеющихся морщин и предотвращают появление новых, защищая клетки от свободных радикалов. Относятся к ботоксоподобным средствам.
  • Eye Gels . Убирают темные круги и отеки, разглаживают мимические морщинки. Средство оказывает глубокое увлажнение за счет колоссальной дозы природных и синтетических увлажнителей. В составе - гиалуронка, витамины А и Е, арбутин.
  • Super Aqua-Eye . Легкие патчи с натуральным составом. Витаминный комплекс, экстракт винограда и коллаген делают кожу свежей, отдохнувшей и подтянутой. Подходят для женщин любого возраста.
  • Konad gel eye patch . Дарят тонизирующий и освежающий эффект за счет того, что в состав входят экстракт зеленого чая, коллаген и другие полезные микроэлементы. Также слегка разглаживают «гусиные лапки». Эти патчи - идеальный вариант, чтобы привести себя в порядок после бессонной ночи.
  • Secret Key Gold . Пропитаны коллоидным золотом, гиалуроновой кислотой и лавандовым маслом. Содержат морской коллаген и аденозин. Мощный сбалансированный состав оказывает мгновенный лифтинг-эффект, питает, увлажняет и восстанавливает кожу. По функциональности может заменить крем под глаза.

Как пользоваться патчами для глаз


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

Правила нанесения патчей:

  1. Умойте лицо при помощи специальных средств и высушите кожу салфеткой.
  2. Выложите патч любого типа влажной стороной на кожу и аккуратно распределите под глазами.
  3. Если вы выбрали тканевые средства, то для лучшего закрепления немного смочите их водой сверху.
  4. Гидрогелевые пластыри распределяйте от носа к вискам, чтобы добиться выравнивающего эффекта.
  5. Никакой дополнительной косметики перед патчами на лицо наносить не нужно.
  6. Время работы тканевых патчей может составлять час, а может быть рассчитано и на всю ночь. Эта информация должна быть указана на упаковке.
  7. Гидрогелевые пластыри наносятся на 20-30 минут. Они настолько удобны и практически незаметны, что многие женщины делают такие маски даже на работе.
  8. После использования патчей умываться нельзя. Если остались излишки средства на коже, равномерно распределите их по всему лицу.
  9. Если после этой процедуры планируете наносить косметику, кремом под глаза пользоваться не нужно.
  10. Если во время процедуры чувствуется дискомфорт, жжение или рези в глазах, обязательно снимите пластыри и умойтесь.
  11. Ни в коем случае не применяйте патчи несколько раз. Полезные вещества в них не сохраняются.

Чтобы не вызвать раздражение, не держите маски-патчи для глаз на коже дольше времени, указанного на упаковке.


Как использовать патчи для глаз - смотрите на видео:


Регулярное применение патчей позволит дерме накапливать ценные микроэлементы и удерживать эффект долгое время. Запас полезных веществ нужно пополнять хотя бы 1-2 раза в неделю.

С некоторого времени корейская косметика стала одной из лучших на мировом рынке бьюти-товаров. Постоянные инновации корейских косметологов заставляют обратить на себя внимание девушек, изучающих модные новинки.

Популярным продуктом этой индустрии стали чудо-патчи с широким ассортиментом видов «пластырей». Они позволяют за достаточно короткий срок избавиться от насущных проблем в виде морщин, неприятных отеков и темных кругов под глазами.

В этой статье:

Что собой представляют корейские патчи

С первого взгляда патчи похожи на полукруглые пластыри или подушечки, которые необходимо прикладывать к зоне под глазами. Их внутренняя сторона покрыта специальным клейким составом, который удерживает накладки в одном положении. Это позволяет заниматься своими делами в то время, как активные компоненты восстанавливают чувствительную кожу под глазами.

Главным преимуществом такого уходя является мгновенный результат. В отличие от кремов, которые необходимо наносить каждый день на протяжении нескольких недель или даже месяцев, патчи (аппликации) работают мгновенно. Они пропитаны косметическими средствами с высокой концентрацией активных веществ, которые по эффективности можно сравнить с дорогостоящими антивозрастными или глубоко увлажняющими сыворотками.

Их действие во многом зависит от компонентов, которыми пропитаны накладки. В состав обычных патчей практически всегда входят следующие ингредиенты:

  • глубоко увлажняющие и восстанавливающие кожу вещества — коллаген, глицерин и гиалуроновая кислота;
  • антиоксиданты помогают омолодить и ускорить обновление кожи;
  • для ускорения циркуляции крови используют винную кислоту или кофеин;
  • пептиды помогают сделать кожу более упругой;
  • различные эфирные масла применяются в качестве дополнительных добавок для усиления эффекта.

Название этого средства произошло из компьютерной терминологии, где «патч» — быстрая коррекция дефекта. По тому же принципу работает и этот бьюти-продукт. Его необходимо использовать в качестве срочного средства для восстановления кожи. Однако и эффект от подобного экстренного воздействия будет недолговечным.

Патчи позволяют быстро избавиться от сухости, неглубоких морщин, снять следы усталости с лица и уменьшить отечность.

Существуют определенные разновидности корейского ноу-хау, которое позволяет достичь длительного результата, но использовать такие патчи придется регулярно.

Всего выделяют два основных вида подобных продуктов для восстановления кожи вокруг глаз:

  • на тканевой основе;
  • гидрогелевые патчи.

Каждый из них имеет свои особенности не только в действии, но и в использовании.

Тканевые патчи

Внешне они напоминают ватные диски для снятия макияжа. Главным преимуществом тканевых патчей считается высокая концентрация коллагена в составе. Он практически идентичен натуральному, который вырабатывается в человеческом организме, поэтому может максимально глубоко проникнуть в кожу.

Кроме того, компоненты «маски» позволяют избавиться от и уменьшить мешки. Однако даже от концентрированного средства не стоит ожидать чудодейственного омоложения, эффект лифтинга будет продолжительным только при их регулярном использовании.


Гидрогелевые

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

При длительном и регулярном использовании гидрогелевых чудо-масок наблюдается устойчивый результат, как от дорогих кремов. При этом они не так эффективны для устранения отечности и последствий усталости. Здесь лучше подходят тканевые патчи.


Как использовать

Как и любые бьюти-продукты, патчи имеют свои особенности использования.

Не стоит злоупотреблять чудесным эффектом, который видно уже через 15−30 минут. Использование патчей должно быть умеренным, в зависимости от особенностей кожи и выбранной марки средства по уходу за ней.

Способ применения корейских патчей очень похож:

  • Необходимо очистить кожу лица.
  • Аккуратно вскрыть упаковку со средством.
  • Приклеить патчи на зону под глазами на расстоянии 2 мм от нижних ресниц.
  • Держать их нужно 20 минут, так как именно за это время патч передает все питательные компоненты. На более долгий срок оставлять средство не стоит, ведь кожа уже впитала необходимое количество активных компонентов.
  • Снимать патчи следует по направлению от носа к вискам. Остатки средства не стоит смывать или удалять салфеткой, лучше дать им впитаться в кожу. Для этого можно использовать легкие похлопывающие движения.
  • Нанести подходящий вашему типу кожи крем для век.

Компоненты будут лучше впитываться, если перед нанесением сделать легкий массаж. Он активирует циркуляцию крови и подготовит кожу.

В случае такой неприятности, как отеки под глазами, следует подготовиться перед нанесением маски. Для этого вначале делают зарядку для глаз, далее — лимфодренажный массаж проблемной зоны. И только через 25−35 минут прикладывают «пластыри».

Как часто использовать

Споры по поводу патчей ведутся уже давно. Каков же правильный подход к этому чудо-средству? Кто-то считает, что применять их можно только как экстренную меру, а основной уход за кожей следует проводить при помощи крема. Однако это убеждение не совсем верно.

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

В зависимости от выбранной марки средства, их можно использовать 1 или 2 раза в неделю на протяжение нескольких месяцев.

За это время разгладятся мелкие морщины, кожа станет более свежей. Но не стоит рассчитывать, что патчи избавят вас от глубоких морщин. Для этого потребуется более сильное средство, в виде крема или сыворотки, которые придется использовать регулярно.

Противопоказания

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

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

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

  • Проблемы со зрением, коньюктивит. Некоторые ингредиенты при попадании в глаза усугубляют состояние и ухудшают зрение.
  • Повреждение на коже. Сыпь, ссадины и порезы должны полностью зажить, только после этого можно использовать активные маски.
  • Купероз. Сосуды могут стать более заметными, так как ингредиенты средства усиливают кровообращение. Смотрите здесь, .

Чтобы эффект от маски был максимальным, важно внимательно изучить инструкцию конкретной марки, придерживаться правил ее использования. И тогда свежая, увлажненная и отдохнувшая кожа вам будет гарантирована!

Полезное видео

Вконтакте

( 2007-02-05 )

Комманды diff и patch представляют собой мощную комбинацию. Они часто используются для получения разницы между оригинальными файлами и обновленными, что бы другие люди, у которых есть только только оригинальные файлы могли обновить их используя файлы, которые содержат только разницу. В этой статье показаны базовые принципы использования этих команд.

В этой статье используются без объяснения некоторые базовые команды Linux, такие как смена смена директории, копирование файлов и редактирование текстовых файлов.

Использование diff для создания простого патча

Наиболее простой пример использования команды diff - получение различий между двумя файлами, оригинальным и обновленным. Можете, например, написать насколько слов обычного текста, сделать какие-нибудь изменения, и сохранить измененния во второй файл. Теперь вы можете сравнить эти эти два файла, используя команду diff:

$ diff originalfile updatedfile

Конечно, надо заменить originalfile и updatedfile соответствующими именами файлов. В результате должно получиться что-то вроде этого:

1c1 < These are a few words. \ No newline at end of file --- > These still are just a few words. \ No newline at end of file

Обратите внимание: Что бы продемонстрировать создание простого патча, я использовал оригинальный файл, содержащий строку "These are a few words.", и измененный файл, содержащий строку "These still are just a few words." Вы можете создать эти файлы сами, если хотите запустить команду из статьи и получить тот же результат.

1c1 показывает номер строки и то, что с ней надо сделать. Обратите внимание, что может быть сразу несколько строк(например, 12,15, что означает со строки 12 до строки 15). Символ "c" означает, что патч заменит эту строку. Есть еще два других символа: "a" и "d". Они означают "добавить"(add) и "удалить"(delete) соответственно. Таким образом, синтаксис следующий: (номер строки или диапазон строк)(c,a или d)(номер строки или диапазон строк), хотя когда используются "a" или "d", одна из частей (номер строки или диапазон строк) может содержать только номер одной строки.

    Когда используется "c", номера строк слева - это строки в оригинальном файле, которые надо заменить строками, находящимися в патче, а номера строк справа - это строки, которые должны быть в пропатченном файле.

    Когда используется "a", номер слева может быть только номером одной строки, который показывает, где надо добавить строку в пропатченном файле, а номера строк справа - это строки, которые должны быть в пропатченном файле.

    Когда используется "d", номера строк слева - это строки, которые надо удалить, чтобы получить пропатченную версию файла, а номер строки справа может быть только номером одной строки, который показывает где будут строки в пропатченном файле, если они не будут удалены. Вы можете подумать, что последний номер не нужен, но не забывайте, что патч можно применить для восстаноления исходного файла. Это будет объяснено позже.

Знак "<" означает, что патч должен удалить символы после этого знака, а знак ">" означает, что символы после этого знака надо добавить. Когда надо заменить строки ("c" между номерами строк), вы увидите оба знака: и "<", и ">". Когда надо добавить строку ("a" между номерами строк), вы увидите только знак ">", а когда надо удалить строку ("d" между номерами строк), вы увидите только знак "<".

Строка "\ No newline at end of file" появилась из-за того, что я не не нажал enter после того как набрал слова. Считается хорошим тоном заканчивать текстовый файл пустой строкой. Некоторым программам она необходима для работы. Поэтому эта строка появилась после работы команды diff. Добавим пустые строки в конец файлов, и получим более короткий вывод команды diff:

1c1 < These are a few words. --- > These still are just a few words.

Как вы возможно заметили, я не объяснил что означают 3 знака "-". Они означают конец строк, которые надо заменить и начало строк на которые надо заменить. Разделение старых и новых строк. Вы увидите это знак только при замене ("c" между номерами строк).

Если мы хотим создать патч, мы должны поместить вывод команды diff в файл. Конечно это можно сделать, скопировав его из консоли и вставив в вашем любимом текстовом редакторе, а затем сохранив этот файл, но есть способ проще. Мы можем с помощью bash направить вывод команды diff в текстовый файл:

$ diff originalfile updatedfile > patchfile.patch

Опять же не забудьте заменить originalfile и updatedfile на соответствующие имена файлов. Вы наверное знаете, что опция bash ">" работает со всеми командами. Это очень полезное свойство.

Применение простого патча, который мы создали

Мы можем использовать патч, который только что создали, чтобы получить из оригинального файла обновленный. Для этого надо скопировать оригинальный файл и патч в одно и тоже место. И затем применить патч:

$ patch originalfile -i patchfile.patch -o updatedfile

Естественно, и здесь надо изменить имена файлов на необходимые. Если все прошло хорошо, должен получиться файл, идентичный обновленному. Вы можете убедиться в этом, используя команду diff с опцией "-s":

$ diff -s updatedfile /updatefile

Замените текст между [ и ] на путь к оригинальному файлу. Например, если обновленный файл, который вы использовали при создании патча находится в родительской директории вышай текущей, то "" надо заменить на ".." (bash понимает это как родительскую директорию от текущей). И конечно надо изменить имена файлов на верные.

Поздравляю! Если diff сообщила, что файлы идентичные, вы только что успешно создали и применили патч! Однако формат патча, который мы только что использовали не единственный. В следующей главе мы рассмотрим другой формат патча.

Контекстный патч

В первой главе мы создали патч, используя нормальный формат команды diff. Однако этот формат не обеспечивает контекстной зависимости, а использует строки целиком. Создадим патч для того же файла, но используя контектсный формат:

$ diff -c originalfile updatedfile

Результат получится следующий:

*** originalfile 2007-02-03 22:15:48.000000000 0100 --- updatedfile 2007-02-03 22:15:56.000000000 0100 *************** *** 1 **** ! These are a few words. --- 1 ---- ! These still are just a few words.

Как вы видите, здесь включено имя файла. Это значит, что нам не придется набирать его во время применения патча. Далее идет дата и время последнего изменения файла. строка с 15 "*" показывает начало изменений. Они показывают, что надо сделать со следующим блоком текста. Два номера 1 - это номера строк (здесь тоже может быть сразу несколько строк), а "!" означает, что строки надо заменить. Строка с "!" перед тремя "-" должна быть заменена второй строкой с "!", которая идет после трех "-"(конечно сам! не будет включен; это синтаксис контекстного формата). Как вы можете видеть, здесь нет знаков "c", "a" и "d".Действие, которое нужно сделать, определяется символом в начале строки. "!" означает замену. Другие символы - "+", "-" и " " (пробел). "+" означает добавление, "-" означает удаление, а " " означает ничего не делать: патч использует его чтобы убедиться, что он изменяет правильную часть файла.

Применять этот патч легче: при тех же условиях, что и для предыдущего патча (записываем вывод команды diff в файл, затем копируем патч и оригинал в одно и то же место), надо выполнить следующую команду:

$ patch -i patchfile.patch -o updatedfile

Вы возможно сейчас думаете: зачем нам надо указывать имя нового файла? Это надо сделать из-за того, что патч старается изменить существующий файл, а не создает новый. Это удобно при создании патча для нескольких файлов сразу. Это приводит нас к следующей цели: создание патча для дерева файлов. Рассмотрим это в следующей главе.

Получение различий между несколькими файлами

Наиболее простой способ получить различия между несколькими файлами - это положить их в одну директорию и выполнить команду diff для этой директории целиком. Вы можете просто передать команде diff в качестве параметров имена директорий вместо имен файлов:

$ diff originaldirectory/ updateddirectory/

Обратите внимание: Если в директория есть поддиректории, то надо использовать опцию "-r".

В результате должно получится что-то вроде этого:

Diff originaldirectory/file1 updateddirectory/file1
1c1 < This is the first original file. --- > This is the first updated file. diff originaldirectory/file2 updateddirectory/file2 1c1 < This is the second original file. --- > This is the second updated file. 14d13 < We"re going to add something in this file and to delete this line. 26a26 > This is line has been added to this updated file.

Обратите внимание: Я создал несколько несколько файлов для примера. Вы можете скачать архив, содержащий эти файлы: .

Как вы видите, нормальный формат содержит только имена файлов и изменяемые строки.

Теперь используем контекстный формат:

Diff -c originaldirectory/file1 updateddirectory/file1 *** originaldirectory/file1 2007-02-04 16:17:57.000000000 +0100 --- updateddirectory/file1 2007-02-04 16:18:33.000000000 +0100 *************** *** 1 **** ! This is the first original file. --- 1 ---- ! This is the first updated file. diff -c originaldirectory/file2 updateddirectory/file2 *** originaldirectory/file2 2007-02-04 16:19:37.000000000 +0100 --- updateddirectory/file2 2007-02-04 16:20:08.000000000 +0100 *************** *** 1,4 **** ! This is the second original file. S O --- 1,4 ---- ! This is the second updated file. S O *************** *** 11,17 **** C E - We"re going to add something in this file and to delete this line. S O --- 11,16 ---- *************** *** 24,28 **** --- 23,28 ---- C E + This is line has been added to this updated file. Something will be added above this line.

Первая вещь, которую вы должны были заметить - это увеличение размера; контекстный формат содержит больше информации, чем нормальный. Этого не было заметно в первом премере, так как не было контекста. Однако теперь контекст есть, и за счет него размер патча увеличился. Кроме того, вы наверное заметили, что имя файла повторяется дважды. Это возможно сделано для того, чтобы легче было понять когда начался патч следующего файла или для обеспечения лучшего восстановления.

Другой способ получить разницу между между несколькими файлами - это написать скрипт, который выполняет команду diff несколько раз и добавляет результат выполнения в один файл. Мы не будем рассматривать этот способ, так как положить все файлы в одну директорию горазда проще.

Создать патч было легко, но использование директорий ставит следующую проблему: бедут ли патч изменять только соответствующие файлы в текущей директории, или будет использовать соответствующий путь, указанный в файле? Чтобы узнать это, смотрите следующую главу!

Применение патча к нескольким файлам

В предыдущей главе мы создали патч для нескольких файлов, воспользовавшись следующей командой:

$ diff -c originaldirectory/ updateddirectory/ > patchfile.patch

Обратите внимание: мы используем контекстный формат патча, так как это является хорошим тоном.

Теперь надо использовать полученный патч. Скопируйте оригинальную директорию и патч куда-нибудь и примените следующую команду:

$ patch -i patchfile.patch

Однако возникает ошибка, что невозможно найти файлы для патча. Команда пытается найти файл file1 в текущей директории (по умолчанию патч убирает все пути перед именем файла). И конено файла нет, так как мы пытаемся обновить файлы в директории originaldirectory. Поэтому мы должны заставить патч использовать полный путь. Это делается следующим образом:

$ patch -p0 -i patchfile.patch

Обратите внимание: Вы может подумать, что можно просто переместиться в originaldirectory и запустить патч. Но это не так! Так делать не стоит: если в в патче содержатся поддиректории, то он будет искать их в рабочей директории, и не найдет, или найдет не те. Используйте опцию "-p", чтобы заставить патч искать файлы в поддиректориях.

Опция "-p" говорит патчу сколько слэшей (включая то, что перед ними, обычно директории) нужно вырезать перед именем файла (обратите внимание, что при использовании опции "-p0", патч будет будет искать файлы и в originaldirectory и в updateddirectory).Когда мы устанавливаем 0, это означает что не надо удалять пути, но можно поставить 1, чтобы удалить первый слэш, или 2, чтобы удалить два слэша, и т.д. Это может быть полезно, если если в патче используется структура каталогов, отличная от вашей. Например, если в патче используется следующая структура каталогов:

(...) *** /home/username/sources/program/originaldirectory/file1 2007-02-04 16:17:57.000000000 +0100 --- /home/username/sources/program/updateddirectory/file1 2007-02-04 16:18:33.000000000 +0100 (...)

Вам надо просто посчитать количество слэшей (/ (1) home/ (2) username/ (3) sources/ (4) program/ (5)) и передать это число в опцие "-p". Если вы используете "-p5", то патч будет искать и в originaldirectory/file1 и в updateddirectory/file1. Не забудьте, что патч рассматривает два слэша друг за другом (как в /home/username//sources) как один. Это вызвано тем, что иногда патч скрипты добавляют дополнительный слэш между директориями.

Восстановление оригинального файла из пропатченного

Иногда возникает необходимость восстановить оригинальный файл из пропатченного. Например, если в нем содержится ошибка. Для этого надо использовать опцию "-R":

$ patch -p0 -R -i patchfile.patch

Обычно эта операция проходит без ошибок, и вы получаете исходный файл. Однако лучше на всякий случай сделать резервную копию перед восстанолением файлов.

Унифицированный формат

Есть еще один формат вывода различий командой diff: унифицированный формат. Он более компактен, так как содержит уменьшенные контекстные строки. Однако он поддерживается только GNU diff и patch. Если вы его используете, вы должны быть уверены, что у пользователей, для которых патч предназначен, GNU patch. Linux допускает использование этого формата.

Унифицированный формат похож на контекстный, но это не одно и тоже. Патч в унифицированном формате можно создать так:

$ diff -u originaldirectory/ updateddirectory/

Результат будет седующий:

Diff -u originaldirectory/file1 updateddirectory/file1 --- originaldirectory/file1 2007-02-04 16:17:57.000000000 +0100 +++ updateddirectory/file1 2007-02-04 16:18:33.000000000 +0100 @@ -1 +1 @@ -This is the first original file. +This is the first updated file. diff -u originaldirectory/file2 updateddirectory/file2 --- originaldirectory/file2 2007-02-04 16:19:37.000000000 +0100 +++ updateddirectory/file2 2007-02-04 16:20:08.000000000 +0100 @@ -1,4 +1,4 @@ -This is the second original file. +This is the second updated file. S O @@ -11,7 +11,6 @@
C E -We"re going to add something in this file and to delete this line. S O @@ -24,5 +23,6 @@ C E +This is line has been added to this updated file. Something will be added above this line.

Как вы видите, номера строк заключены между "@". Кроме того, есть дополнительный пробел после "+" или "-". Это экономит несколько байт. Другое различие: в унифицированном формате нет специального знака для замены. Он просто удаляет старые строки ("-") и добавляет новые ("+"). Разница между этими действиями заключается в том, что при замене используется один и тот же номер строки, а при удалении и добавлении разные.

Сравнение форматов

Читая про три разных формата, вы вероятно задумались: а какой же выбрать? Вот небольшое сравнение:

    Нормальный формат наиболее совместимый. Любые команды похожие на diff/patch должны понять его. Его недостаток - это отсутствие контекста.

    Контекстный формат широко распространен, но не все команды его понимают. Его преимущество в наличии контекста.

    Унифицированный формат тоже включает контекст, и при этом более компактем. Но его поддерживает только GNU diff and patch.

Если вы уверены, что патч буду использовать только пользователи с GNU diff/patch, то лучше всего выбрать унифицированный формат, так как он более компактный. В большинстве других случаев лучший выбор - это контекстный формат. Нормальный формат следует использовать если вы уверены, что пользователь будет применять патч командами, не поддерживающими контекстный формат.

Изменение количества контекстных строк

Можно заставить команду diff включать в патч сеньшее количество строк контекста, чем должно быть. В больших патчах это может сильон уменьшить его размер. Однако если уменьшить количество контекстных строк, это может привести в неработоспособности патча. Цитати из справки GNU diff: "Для большинства операций в патче должно быть хотя бы две строки контекста."

Указать количество контестных строк можно несколькими способами:

    Если вы хотит использовать контекстный формат, вы можете вы можете совместить эти указания, добавив в опцию "-C". Пример:

    $ diff -C 2 originaldirectory/ updateddirectory/

    Предыдущая команда будет использовать контекстный формат с двумя контекстными строками.

    Если вы хотит использовать контекстный формат, вы можете вы можете совместить эти указания, добавив в опцию "-U". Пример:

    $ diff -U 2 originaldirectory/ updateddirectory/

    Предыдущая команда будет использовать унифицированный формат с двумя контекстными строками.

    Если не указывать какой формат вы хотите использовать, то команда будет выглядеть примерно так:

    $ diff -2 originaldirectory/ updateddirectory/

    Однако это будет работать только если вы определите формат. Вам необходимо использовать эту опцию или с "-c" или с "u".

Заключительные слова

Несмотря на то, что эта статья описывает множество особенностей работы команд diff и patch, она не может описать все их возможности. Если вы хотите узнать больше об этих командах, вы можете прочитать страницу помощи по этим командам и