Development/Howto/Subversion

Материал из Mandriva Russian Community Wiki

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

Содержание

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/

Дополнительно

Некоторые полезные ссылки

Ссылки

    На других языках