Development/Howto/Subversion
Материал из Mandriva Russian Community Wiki
Содержание |
Subversion, rpm и связанные с ними инструменты
Subversion разбит по нескольким rpm-пакетам. Клиент находится в пакете subversion.
Существуют инструменты с графическим интерфейсом (Rapidsvn) и svm, который позволяет сделать полную копию удалённого репозитория. Вас также может заинтересовать программа svk, которая позволяет использовать subversion in a distributed fashion (Distributed Version Control with svk и SVK Wiki)
Команды subversion
Subversion похож на cvs. Команда извлечения данных:
svn checkout http://svn.server.org/путь/к/файлу/
Subversion не обрабатывает теги и ветки как это делает cvs. Если вы хотите сохранить версию, используйте svn cp. Большинство времени вы будете видеть 3 основных каталога:
- trunk/ содержит рабочие копии;
- branches/ содержит экспериментальные ветки, которые будут сливаться с основными ветками в trunk после их стабилизации;
- tags/ содержит теги, подобные тегам в cvs. Если вам нужна версия с номером 0.1, она обычно находится здесь.
Не обязательно следовать этой схеме. Тем не менее, такая организация каталогов рекомендуется официальной документаций, а потому распространена наиболее широко.
cvs хранит всю информацию в подкаталоге CVS. subversion использует подкаталог .svn. Вы не должны их включать, иначе RpmLint выдаст об этом предупреждение.
Внесение изменений в subversion являются атомарными. Это означает, что весь репозиторий является версионным. Таким образом, существует единый номер версии для всех файлов, называемый ревизией. Для получения старых ревизий используется команда svn checkout -r:
svn checkout -r 345 http://svn.server.org/путь/к/файлу/trunk/
Все файлы будут находиться в подкаталоге trunk, если вы извлекали trunk.
Дополнительная документация по subversion может быть найдена в Интернете: svnbook.red-bean.com и subversion.tigris.org.
Subversion и RpmBuildUpdate
RpmBuildUpdate может использоваться для автоматического извлечения из svn. Необходимо следовать некоторым правилам, о которых рассказывается на странице RpmBuildUpdate.
Subversion для переводчика
Получив учётную запись в svn (имя пользователя и пароль), выполните следующее:
Во-первых, определите ваше имя пользователя, чтобы не вводить его каждый раз:
export SVN_SSH="ssh -l имя_пользователя"
Чтобы каждый раз не определять имя пользователя, добавьте строку в файл ~/.bashrc.
Далее, извлеките актуальные модули. Позднее вы можете просто обновить модули, уже содержащиеся на вашем диске, вместо того, чтобы извлекать их повторно.
В настоящий момент большинство модулей перенесено из cvs в svn. Их можно извлечь следующим образом:
mkdir ~/svn-mandriva
cd ~/svn-mandriva
export URL=svn+ssh://svn.mandriva.com/svn/soft/
export DRAKX_URL=$URL/drakx/trunk/perl-install/
svn co $DRAKX_URL/install/share/po DrakX
svn co $DRAKX_URL/share/po libDrakX
svn co $DRAKX_URL/standalone/po libDrakX-standalone
svn co $URL/bootsplash/trunk/po bootsplash
svn co $URL/control-center/trunk/po control-center
svn co $URL/doc_isos/po doc_isos
svn co $URL/drak3d/trunk/po drak3d
svn co $URL/drakbackup/trunk/po drakbackup
svn co $URL/drakbt/trunk/po drakbt
svn co $URL/drakfax/trunk/po drakfax
svn co $URL/drakguard/trunk/po drakguard
svn co $URL/draklive-install/trunk/po draklive-install
svn co $URL/draklive-resize/trunk/po draklive-resize
svn co $URL/drakmenustyle/trunk/po drakmenustyle
svn co $URL/drakmsync/trunk/po drakmsync
svn co $URL/drakoo/trunk/po drakoo
svn co $URL/draksnapshot/trunk/po draksnapshot
svn co $URL/drakstats/trunk/po drakstats
svn co $URL/draktermserv/trunk/po draktermserv
svn co $URL/drakvirt/trunk/po drakvirt
svn co $URL/drakwizard/trunk/po drakwizard
svn co $URL/drakx-kbd-mouse-x11/trunk/po drakx-kbd-mouse-x11
svn co $URL/drakx-net/trunk/po network-tools
svn co $URL/ftw/trunk/po drakfirstboot
svn co $URL/ftw-web/trunk/po ftw-web
svn co $URL/GtkMdkWidgets/trunk/po gtkmdkwidgets
svn co $URL/hcl/trunk/po hcl
svn co $URL/initscripts/trunk/mandriva/po initscripts
svn co $URL/kde4-splash-mdv/trunk/po/ kde4-splash-mdv
svn co $URL/mandriva-kde-translation/trunk/po mandriva-kde-translation
svn co $URL/mdkhtmlbrowser/trunk/po mdkhtmlbrowser
svn co $URL/mdkonline/trunk/po mdkonline
svn co $URL/menu-messages/trunk/contrib menu-contrib
svn co $URL/menu-messages/trunk/main menu-main
svn co $URL/menu-messages/trunk/non-free menu-non-free
svn co $URL/msec/trunk/po msec
svn co $URL/park-rpmdrake/trunk/po park-rpmdrake
svn co $URL/printerdrake/trunk/po printerdrake
svn co $URL/rfbdrake/trunk/po rfbdrake
svn co $URL/rpmdrake/trunk/po rpmdrake
svn co $URL/rpm-summary/trunk/rpm-summary-contrib rpm-summary-contrib
svn co $URL/rpm-summary/trunk/rpm-summary-devel rpm-summary-devel
svn co $URL/rpm-summary/trunk/rpm-summary-main rpm-summary-main
svn co $URL/system-config-printer/po system-config-printer
svn co $URL/rpm/urpmi/trunk/po urpmi
svn co $URL/theme/mandriva-gfxboot-theme/trunk/po mandriva-gfxboot-theme
svn co $URL/transfugdrake/trunk/po transfugdrake
svn co $URL/userdrake2/trunk/po userdrake2
svn co $URL/mandriva-galaxy-data/trunk/po mandriva-galaxy-data
svn co $URL/mandriva-galaxy-kde4/trunk/po mandriva-galaxy-kde4
Перечисленные выше команды создают каталог svn-mandriva в вашем домашнем каталоге, в svn-mandriva будут находиться все извлечённые модули. Вместо svn-mandriva можно использовать любой другой каталог.
После каждой команды svn co, вам будет нужно вводить пароль для svn (может быть несколько раз).
Работа над определённым модулем заключается в редактировании языкового файла и внесении изменений в репозиторий.
Предполагаемый объём занимаемого пространства: 550 МБайт.
Основные команды subversion для переводчиков
Далее описываются распространённые команды, которые запускаются из каталога, в котором находится .po-файл.
- Обновление локальной копии до последней версии, находящейся в svn Mandriva:
svn update
- Для проверки каких-либо изменений в репозитории используется команда:
svn status
Любой из модифицированных файлов будет представлен с буквой ‘М’, стоящей в первой колонке (выполнять проверку должен каждый, избегайте изменений файлов, не принадлежащих вашей команде!).
svn status
- Чтобы проверить изменения между вашей локальной копией и копией в репозитории, наберите команду:
svn diff
Рекомендуется всегда выполнять эту команду перед тем, как вносить изменения в репозиторий.
- Внесение изменений в репозиторий(убедитесь, что в сообщении говорится именно о вашем языке):
svn commit --message "update translation for xxxx language"
- Если .po-файл ещё не существует для вашего языка:
. . . a. cкопируйте ваши .po-файлы в локальный svn-каталог
. . . b. добавьте его в локальный svn, используя команду svn add xx.po (где «xx» - две буквы вашего языка)
. . . c. внесите изменения в репозиторий.
- Если вы хотите изменить ваш subversion пароль, соединитесь с узлом kenobi через защищённую оболочку ssh:
ssh kenobi.mandriva.com
yppasswd
- Обновление всей локальной копии до текущей версии Mandriva svn:
. . . (это займёт некоторое время)
cd /путь/к/локальному/svn-mandriva/
svn update */
- Получание информации о локальной копии svn
svn info
Извлечение данных для тех, у кого нет учётной записи в SVN
Если у вас нет учётной записи в SVN, замените строку "export URL=svn+ssh://svn.mandriva.com/svn/soft/" строкой "export URL=http://svn.mandriva.com/svn/soft/" в инструкциях описанных выше. Это позволит извлекать информацию из репозитория тем, у кого нет учётной записи (вносить изменения напрямую в репозиторий вам будет нельзя, но вы можете отправлять патчи [1] в список рассылки i18n-patches@mandrivalinux.org) Например:
mkdir ~/svn-mandriva cd ~/svn-mandriva export URL=http://svn.mandriva.com/svn/soft/ export DRAKX_URL=$URL/drakx/trunk/perl-install/ svn co $URL/theme/mandriva-gfxboot-theme/trunk/po bootloader svn co $DRAKX_URL/install/share/po DrakX (...)
Документация
http://svn.mandriva.com/cgi-bin/viewvc.cgi/doc/MandrivaLinux/trunk/
Дополнительно
- Неофициальная статистика перевода: mdk.jack.kiev.ua/stats/gui/trunk/team
- Полезные советы для переводчиков

