Difference between revisions of "MW Import&Export/ru"

From Wiki4Intranet
Jump to: navigation, search
(Ссылки)
(Ссылки)
Line 65: Line 65:
 
* [http://mediawiki4intranet.googlecode.com/hg/import-export-patch/MW4Intranet-ImportExportPatch-1.16.2.diff?r=files Патч для MediaWiki 1.16.2].
 
* [http://mediawiki4intranet.googlecode.com/hg/import-export-patch/MW4Intranet-ImportExportPatch-1.16.2.diff?r=files Патч для MediaWiki 1.16.2].
 
* [http://mediawiki4intranet.googlecode.com/hg/import-export-patch/MW4Intranet-ImportExportPatch-svn82606.diff?r=files Патч для MediaWiki 1.17-dev] (для [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3?pathrev=82606 svn82606]).
 
* [http://mediawiki4intranet.googlecode.com/hg/import-export-patch/MW4Intranet-ImportExportPatch-svn82606.diff?r=files Патч для MediaWiki 1.17-dev] (для [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3?pathrev=82606 svn82606]).
* [http://mediawiki4intranet.googlecode.com/hg/tools/wiki-crawl-export.php?r=mw4install Скрипт-crawler для экспорта подобных дампов из '''стандартных''' MediaWiki без поддержки сего патча]
+
* [http://mediawiki4intranet.googlecode.com/hg/tools/wiki-crawl-export.php?r=mw4install Скрипт-crawler] для экспорта подобных дампов из '''стандартных''' MediaWiki без поддержки сего патча
 
* [http://mediawiki4intranet.googlecode.com/hg/import-export-patch/file-upload-renamer.php Скрипт обслуживания (maintenance)] для миграции схемы именования старых ревизий загруженных файлов.
 
* [http://mediawiki4intranet.googlecode.com/hg/import-export-patch/file-upload-renamer.php Скрипт обслуживания (maintenance)] для миграции схемы именования старых ревизий загруженных файлов.
 
* Патч отправлен в [https://bugzilla.wikimedia.org/show_bug.cgi?id=22881 Wikimedia Bug 22881]. Надеемся, что он будет включён в код будущей версии MediaWiki после каких-нибудь доработок.
 
* Патч отправлен в [https://bugzilla.wikimedia.org/show_bug.cgi?id=22881 Wikimedia Bug 22881]. Надеемся, что он будет включён в код будущей версии MediaWiki после каких-нибудь доработок.
  
 
[[Категория:MediaWiki]]
 
[[Категория:MediaWiki]]

Revision as of 00:37, 31 March 2011

Оригинальный импорт/экспорт MediaWiki экспортирует только текст статей, но не экспортирует изображения.

Это досадное недоразумение исправлено в сборке MediaWiki 4 Intranet (Internal Bug:47362) с помощью патча в код MediaWiki (см. #Ссылки). Также добавлены некоторые полезные фичи.

Итак, список добавленных фич:

Импорт/экспорт файлов

Реализована поддержка импорта и экспорта загруженных файлов. Есть два варианта:

  • Либо данные файла включаются прямо в экспортный файл, который при этом становится multipart/related вместо обычного XML.
  • Либо экспортный файл остаётся XML, в него для каждой экспортируемой версии файла включается HTTP-ссылка на файл и SHA1-хэш. При импорте файлы загружаются целевой Wiki по необходимости (если версии с совпадающим хэшем ещё нет). Это позволяет уменьшить объём экспортного файла, но зато не может использоваться при отсутствии прямого HTTP-доступа к вики, из которой был выгружен экспортный файл.

Здесь также приходится использовать модификацию filerepo/LocalFile.php, потому что в оригинале имена старых ревизий загруженных файлов в MediaWiki включает в себя некую странную дату «момента архивирования», обычно равную дате следующей ревизии, да ещё не всегда точную, а плюс-минус одна секунда. С патчем это поведение меняется и в имена файлов ревизии включается дата самой ревизии. При этом имена архивных ревизий становятся независимы от имени следующей ревизии и сильно упрощается и становится логичнее импорт.

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

Выборка страниц

Улучшенная выборка страниц для экспорта:

  • Из категорий, включая подкатегории.
  • Из пространства имён.
  • Изменённых после заданной даты.
  • Связанных ссылками с уже выбранными («замыкание по ссылкам»).

Кроме того, у стандартного экспорта есть небольшая неприятная особенность: если запросить включение шаблонов + страниц, связанных ссылками, то он не включит шаблоны, включённые в страницы, связанные ссылками. Причина: стандартный экспорт производит сначала «замыкание» по включаемым шаблонам (включает шаблоны + шаблоны, включённые в шаблоны + и т. д.), а потом — «замыкание» по ссылкам (включает страницы по ссылкам + страницы, на которые ведут ссылки с этих страниц + и т. д.).

В доработанной версии этот недостаток исправлен.

Кроме того, поддерживаются права IntraACL — закрытые от чтения страницы не попадают в список выбранных, также в список в этом случае не попадает лишняя страница «Доступ запрещён».

Выявление конфликтов

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

Вот это и есть «выявление конфликтов» импорта и расширенный отчёт по импортированным страницам. Он включает в себя по сообщению на каждую импортированную страницу, сообщений бывает 5 вариантов:

  1. Все редакции были ранее импортированы. Локальных изменений нет.
  2. Все редакции были ранее импортированы. Страница изменена локально.
  3. N версий.
  4. N версий (новая страница).
  5. N версий (конфликт: XX (импорт) и YY (локальная)).

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

Установка

Установка простая:

  • Скачайте патч для вашей версии MediaWiki, примените его командой patch -p0 < скачанный_патч.diff.
  • Если патча для вашей версии MediaWiki нет в наличии, либо обновите MediaWiki, либо попробуйте патч от ближайших версий, либо ":-(" и придётся копаться руками.
  • Если вы установили патч на непустую инсталляцию MediaWiki, скачайте также скрипт обслуживания (см. #Ссылки), поместите его в каталог maintenance и запустите оттуда с помощью команды php file-upload-renamer.php.

TODO

  • Отчёт об импорте загруженных файлов. Сейчас отчёт идёт только об импорте ревизий самой статьи «Файл:XX». Это означает, что если статья есть, а файла на самом деле нет («ботинок есть, а ребёнка в нём нет»), и если загрузить экспортный файл, содержащий отсутствующую ревизию файла, то файл появится, а импорт об этом ничего не скажет.

Изменения

  • 2011-02-22: Отключено добавление пустой ревизии-маркера после импорта, ибо при регулярной встречной репликации может приводить к бесконечному размножению ревизий.

Ссылки

Категория:MediaWiki