Difference between revisions of "Mediawiki4Intranet/Патчи"
Line 5: | Line 5: | ||
Какие плюсы это даёт: | Какие плюсы это даёт: | ||
− | * Патчи не смешиваются, поэтому поддерживается высокий | + | * Патчи не смешиваются, поэтому поддерживается высокий порядок — можно взять отдельный патч и отправить в upstream или, например, удалить. |
+ | * Содержимое патчей удобно и красиво версионируется — каждое изменение, вносимое в патч, видно не как изменение diff’а, а как обычное изменение самих файлов, которые патчим — это гораздо более читаемо. | ||
* Если патчи экспортировать в [http://www.gnu.org/software/diffutils/ Unified diff]-формате, между ними гарантированно не возникнет конфликтов, так как ещё на стадии слияния либо устраняются конфликты, либо вносится зависимость между патчами. | * Если патчи экспортировать в [http://www.gnu.org/software/diffutils/ Unified diff]-формате, между ними гарантированно не возникнет конфликтов, так как ещё на стадии слияния либо устраняются конфликты, либо вносится зависимость между патчами. | ||
− | А единственный | + | А единственный минус — высокая сложность графа ветвлений в Mercurial-репозитории. |
− | Ветки отдельных патчей отпочкованы от оригинальной, и все изменения, вносимые | + | Ветки отдельных патчей отпочкованы от оригинальной, и все изменения, ''вносимые в эти патчи'', просто фиксируются в соответствующие ветки. Обновления кода MediaWiki и расширений коммитятся в «оригинальную» ветку и merge’атся в ветки патчей, а затем и в ветку «all». |
Далее ко всему этому безобразию, тоже отдельной веткой ('''mw4i-ext'''), добавляются SVN-репозиторий, содержащий собственные и сильно доработанные расширения, инструменты и конфигурационные файлы; после чего ветки '''all''' и '''mw4i-ext''' объединяются в «установочную» ветку '''mw4install'''. | Далее ко всему этому безобразию, тоже отдельной веткой ('''mw4i-ext'''), добавляются SVN-репозиторий, содержащий собственные и сильно доработанные расширения, инструменты и конфигурационные файлы; после чего ветки '''all''' и '''mw4i-ext''' объединяются в «установочную» ветку '''mw4install'''. |
Revision as of 23:30, 22 September 2011
Патчи содержат в себе изменения в код самой MediaWiki, а также небольшие изменения в расширениях, ради которых не хочется поддерживать отдельную версию этих расширений.
В MediaWiki4Intranet патчи хранятся в Feature Branches, то есть, в Mercurial-репозитории есть ветка «mediawiki-x.xx» (например, mediawiki-1.16), содержащая оригинальный код MediaWiki (плюс расширения, в которые изменения вносятся только патчами), по ветке на каждый патч, и ветка «all», содержащая все патчи, объединённые вместе. Для удобства слияний используется расширение Mercurial pbranch.
Какие плюсы это даёт:
- Патчи не смешиваются, поэтому поддерживается высокий порядок — можно взять отдельный патч и отправить в upstream или, например, удалить.
- Содержимое патчей удобно и красиво версионируется — каждое изменение, вносимое в патч, видно не как изменение diff’а, а как обычное изменение самих файлов, которые патчим — это гораздо более читаемо.
- Если патчи экспортировать в Unified diff-формате, между ними гарантированно не возникнет конфликтов, так как ещё на стадии слияния либо устраняются конфликты, либо вносится зависимость между патчами.
А единственный минус — высокая сложность графа ветвлений в Mercurial-репозитории.
Ветки отдельных патчей отпочкованы от оригинальной, и все изменения, вносимые в эти патчи, просто фиксируются в соответствующие ветки. Обновления кода MediaWiki и расширений коммитятся в «оригинальную» ветку и merge’атся в ветки патчей, а затем и в ветку «all».
Далее ко всему этому безобразию, тоже отдельной веткой (mw4i-ext), добавляются SVN-репозиторий, содержащий собственные и сильно доработанные расширения, инструменты и конфигурационные файлы; после чего ветки all и mw4i-ext объединяются в «установочную» ветку mw4install.
Всего: 41 патч.
Исправления багов
То есть патчи, исправляющие какие-либо ошибки. Всего: 18.
Аббр. | Дата добавления | Имя | Описание патча |
---|---|---|---|
CEB | 2010-02-03 | categorytree-empty-bullets | Патч расширения CategoryTree, чтобы оно не предлагало разворачивать пустые на самом деле категории. |
CRNR | 2011-03-28 | cite-refsnoreferences | Патч расширения Cite + в код MediaWiki, в большей части случаев исправляющий ошибку «Ошибка цитирования: для несуществующего тега <ref> не найдено тега <references />», некорректно возникающую при использовании расширений, которые сами где-нибудь используют парсер без сброса состояния. |
DCLD | 2009-11-11 | dont-call-linkholders-__destruct | Исправление некорректного явного вызова деструктора mLinkHolders в парсере. |
DCS | 2009-11-24 | debug-categorized-specialrecentchanges | Исправление выбора по категориям в «Свежих правках». |
DNL | 2009-08-12 | discussion-newsection-links | Ссылки на несуществующие страницы обсуждений сделаны по умолчанию ссылками на добавление секции. |
DSSUC | 2010-03-26 | dont-suppress-same-user-conflicts | Не игнорировать конфликты редактирования, произошедшие из-под одного юзера. |
EHC | 2009-09-11 | bug53818-empty-heading-crutch | Ликвидация пустых заголовков (строк вида ====) из текста статьи, вместо того, чтобы принимать большую часть = за маркеры заголовка, а два внутренних = — за текст заголовка. |
EMB | 2011-04-01 | email-mime-base64 | Использовать кодировку MIME Base64 в заголовках email-писем. Полезно для виндузятников, сидящих на M$ Exchange. |
FFP3 | 2009-08-12 | fixes-for-php-5.3.0 | Исправления предупреждений (warnings) под PHP 5.3 и выше, в некоторых файлах MediaWiki и расширении Interwiki. |
FL | 2010-12-29 | fix-l10n | Исправление сообщения noarticletext в русском языке, добавление формата даты «YYYY-MM-DD HH:MM:SS» без дурацкого «T» между ними. |
FPH | 2010-12-14 | fix-pdfhandler | Патч расширения PdfHandler, убрано экранирование $wgPdfProcessor'а, ссылки на PDF-файл с его страниц теперь ведут на саму страницу. |
FDU | 2011-06-15 | fix-deletebatch-uploads | Патч расширения DeleteBatch, исправляющий удаление загруженных файлов (отправлен на страницу обсуждения). |
GS | 2009-11-19 | gdalwaysresample-setting | Настройка $wgGDAlwaysResample GD, если true, то миниатюры gif’ок получаются более качественными (они всегда уменьшаются с интерполяцией). |
NSF | 2010-06-25 | no-session-fail | Ликвидация лишней попытки сохранения и «ошибок потери данных сессии» при переходе на форму редактирования статьи с передачей текста в окно редактирования. |
UALE | 2009-12-21 | upload-autofill-lowercase-extensions | Автоматическая смена регистра расширения загружаемого файла на нижний. Плюс настройка $wgMaxFilenameLength максимальной длины имени файла в списках файлов с миниатюрами — в оригинале забито гвоздями значение 20, что очень мало, и из-за чего имена файлов часто обрезаются. |
USDMS | 2009-06-03 | unauth-save-display-modified-source | Показ изменённого, а не оригинального текста статьи при запрещённой попытке сохранения. Нужен, чтобы пользователь не потерял свои изменения при нажатии «Сохранить», если сохранять ему на самом деле запрещено. |
WDCS | 2009-12-14 | wfmsg-dont-clear-stripstate | По умолчанию не очищать $parser->mStripState при дополнительных вызовах parse(). Исправляет некоторое количество ошибок с непонятными длинными иероглифическими маркерами «--……..uniq--» в тексте статьи на месте каких-либо данных. На самом деле причина ошибки более глубока: парсер MediaWiki нереентерабелен, авторы об этом знают и, возможно, когда-нибудь исправят. |
ZOM | 2011-04-27 | zip-ooxml-mime | Корректное определение типов OOXML (M$ Office >= 2007) |
Доработки
То есть патчи, добавляющие какой-либо новый функционал. Всего: 23.
Аббр. | Дата добавления | Имя | Описание патча |
---|---|---|---|
AH | 2010-07-23 | add-hooks | Добавление хуков и отключение проверки параметра action для спецстраниц. Требуется в частности для расширений HttpAuth (для авторизации методом HTTP Basic), Wikilog (для группировки свежих правок комментариев в блогах по имени поста на странице «улучшенных» свежих правок). |
ALT | 2009-11-20 | anchor-link-tocnumbers | Поддержка автоматической простановки номеров секций в ссылках на секции текущей страницы. То есть в ссылки вида «[[#Раздел]]» будет автоматически добавлен номер секции («2. Раздел»). |
ARC | 2011-04-27 | any-raw-ctype | Поддержка произвольного Content-Type для ?action=raw (получения текста страницы). |
CSL | 2010-03-25 | category-subcatlist | Патч расширения CategoryTree. Новый метод группировки страниц в категориях — не по первой букве имени, а по другим категориям, в которых они также перечислены. Чтобы включить этот метод, на страницу категории нужно добавить магическое слово __CATEGORYSUBCATLIST__. Плюс магическое слово, отключающее 3-колоночный список в категориях - __NOCATEGORYCOLUMNS__. |
DAT | 2009-08-07 | dot-after-tocnumber | Настройка $wgDotAfterTocnumber, если true, то после номеров разделов в оглавлении ставится точка. |
DBT | 2010-05-21 | detailed-badtitle | Детализация сообщений об ошибках недопустимого имени страницы. |
DSAH | 2009-10-23 | detect-script-allow-html | Разрешение изменения списка тегов, запрещённых в тексте загруженных файлов — настройка $wgForbiddenTagsInUploads. |
EP | 2011-02-18 | env-proxy | Поддержка настроек HTTP прокси, заданных в стандартных переменных окружения http_proxy, http_no_proxy, при загрузке изображений по URL. |
FVS | 2011-02-11 | fix-vector-skin | Небольшая доработка и исправление скина Vector — возвращение возможности поместить поле поиска в левую панель через MediaWiki:Sidebar (что за тупость — удалять возможность). Плюс увеличение ширины верхнего поля поиска. |
HE | 2010-04-21 | html-emails | Часть расширения EnotifDiff. Поддержка отправки почты об изменениях и подтверждении e-mail адреса в формате HTML, а не в виде чистого текста. |
IAR | 2011-02-25 | intraacl-rights | Часть расширения IntraACL. Проверки прав доступа к страницам во всём коде MediaWiki. Собственно это и обеспечивает защиту. |
IEIC | 2009-05-13 | import-export-images-and-conflicts | Очень сильно улучшенный импорт/экспорт страниц MediaWiki. Отправлен в Wikimedia Bug 22881. |
ITF | 2011-02-11 | imagethumb-transform-flags | Передавать данные о том, откуда вызывается создание миниатюры файла. Нужно для FlvHandler’а, чтобы не вставлять код видеоплеера в галереи файлов и в миниатюры файлов в истории ревизий. |
LPWC | 2011-03-23 | longpagewarning-config | Поддержка настройки лимита размера статьи, по истечении которого показывается предупреждение MediaWiki:Longpagewarning. Баг такой у разработчиков mediawiki стоит, но решение они для него предложили очень странное — убрали нафиг проверку и разрешили делать эту проверку на уровне функций парсера. Глупость. |
LSA | 2011-03-23 | lcstore-accel | Поддержка кэширования локализации (LocalisationCache) в PHP ускорителе типа XCache. Странно, что этого нет в оригинале. |
MCE | 2011-05-16 | mergeconflicts-extension | Патч - часть расширения MergeConflicts, позволяющий отображать конфликты редактирования в 3 колонки. |
PDD | 2011-02-11 ← 2010-07-26 | parser-debug-doblocklevels | Разрешать включать <center>...</center> и <blockquote>...</blockquote> внутрь абзаца. Две даты добавления — потому что патч, по сути, имел две версии — первая добавляла тупой хак, местами ломавший тесты, а вторая включает почти полностью переписанный корректный метод doBlockLevels(). |
REF | 2010-12-14 | rearrange-editform | Перемещение списков использованных в статье шаблонов и скрытых категорий на странице редактирования под форму редактирования, то есть, за пределы элемента <form>. Что необходимо для того, чтобы текст WikEd'овского AJAX-предпросмотра, то есть HTML-текст статьи, не включался в форму, потому что он сам может включать в себя формы, и тогда их содержимое некорректным образом попадает в форму редактирования, что потенциально приводит к неприятным багам. Плюс настройка $wgNoCopyrightWarnings для отключения предупреждений о копирайте (MediaWiki:Copyrightwarning, MediaWiki:Copyrightwarning2). |
SDR | 2010-05-29 | svg-double-render | Вставка SVG-изображений как пары векторное+растровое изображение, а не просто как растровое. |
SHL | 2009-06-18 | shift-included-templates-heading-levels | «Сдвиг» уровня заголовков статьи при её включении в подзаголовок. То есть если она включается под заголовком уровня N, то её заголовки 1-го уровня станут (1+N)-ого уровня, 2-го — (2+N), и т. п. |
SNH | 2009-05-13 | signature-nohyphen | Вставка подписей нажатием кнопки без двух лидирующих минусов «--». Плюс <m>...</m> вместо <math>...</math> на кнопке вставки TeX-формул (обрабатывается расширением MarkupBabel). |
TFN | 2009-05-13 | translit-upload-filenames | Автоматическое транслитерирование физических имён файлов (то есть имён файлов на диске) с кириллицы на латиницу под Windows. |
TS | 2010-10-15 | transclude-sections | Поддержка включений секций страниц с помощью синтаксиса вида {{:Статья#Секция}}. |
Устаревшие патчи
Под устаревшими понимаются патчи, более не нужные в связи с обновлением лежащего в основе кода. По сути, это означает, что данный патч либо исправлял какой-то баг, который исправили уже и сами авторы, либо был сам принят в состав MediaWiki (таких пока что, правда, нет), либо был переименован.
Аббр. | Дата добавления | Имя | Описание патча |
---|---|---|---|
CRDP | 2010-01-12 | cite-reenterability-for-different-parser-objects | Патч расширения Cite, направленный на его реентерабельность. |
FCRW | 2009-05-13 | fix-cannot-redeclare-wfspecialupload | Исправление ошибки «Fatal error: Cannot redeclare wfspecialupload()» при загрузке изображения без авторизации. Плюс поддержка HTTP прокси, заданной в стандартной переменной окружения http_proxy, при загрузке изображений по ссылке. |
HAR | 2010-04-27 | haloacl-rights | /* переименован в intraacl-rights */ Часть расширения HaloACL. Проверки прав доступа к страницам во всём коде MediaWiki. Собственно это и обеспечивает защиту. |
IGTT | 2009-09-11 | imagegallery-tell-transform, imagepage-tell-transform | /* патчи объединены в imagethumb-transform-flags */ Передавать данные о том, откуда вызывается создание миниатюры файла. Нужно для FlvHandler’а, чтобы не вставлять код видеоплеера в галереи файлов и в миниатюры файлов в истории ревизий. |
TMF4 | 2009-11-24 | trunk-mediafunctions-for-1.14 | Патч trunk-версии расширения MediaFunctions, позволяющий ей работать в MediaWiki 1.14.1. |