![]() |
|||
Работа с Subversion (SVN)ВведениеНа сервере хранится главный "репозиторий", представлющий собой основную базу публикуемых данных проекта. Каждый из разработчиков имеет свою "рабочую копию", то есть, локальную копию базы с изменниями с некоторого времени и изменениями, внесенными самим разработчиком, но ещё не переданными в базу на сервере. Если разработчик решает внести результат своей работы в "общий котёл", он вносит (commit) свои изменения на сервер с помощью клиентской программы SVN, которая берет на себя заботы по загрузке данных на сервер и объединению их с изменениями от других разработчиков. Программное обеспечениеUNIXЕсли вы работаете в Linux, FreeBSD или другой современной UNIX-системе, тогда достаточно просто установить официальное ПО для SVN, версии 1.0 или выше, для вашей ОС. Большинство дистрибутивов Linux уже содержат его. Примечание На сервере работает Subversion 1.1, могут быть использованы клиенты версий 1.0, 1.1 или 1.2. SVN не поддерживает UTF-8 локализацию. Нужно переключить локаль на ISO8859 перед каждым действием с SVN. AmigaOSРаботая в AmigaOS, вам понадобится установить TCP/IP стэк и любой порт SVN. Как вариант, можно использовать порт для Amiga от Olaf Barthel, который можно найти на AmiNET (надо искать "subversion"). WindowsПри работе в Microsoft Windows (TM) можно рекомендовать SVN-клиент TortoiseSVN, который особенно понравится тем, кто привык работать с Проводником. Программа переведена на русский и содержит довольно подробную документацию (пока не русскую). Команды TortoiseSVN в целом, соответствуют своим аналогам в оригинальной SVN. Отправляя ваши файлы, проверьте, установлено ли свойство eol-style: native, если нет - все ваши файлы должны иметь концы строк в стандарте UNIX (только LF), если да - это не имеет значения. Концы строк UNIX также должны быть во всех ваших новых файлах. Чтобы их получить, можно рекомендовать следующие бесплатные программы: редактор TigerPAD (сохранять как текст UNIX), DOS Navigator (в свойствах редактора проставить LF), утилиту dos2unix (конвертор), NotePad++. Доступ к серверуВ отличие от CVS, не требуется вводить пароль для входа на сервер. Вместо этого SVN запросит ваш логин и пароль по мере надобности. Примечание Репозиторий AROS находится на защищенном паролем сервере SVN, что означает, что необходима регистрация для доступа к серверу для возможности участия в разработке. По требованию Amiga Inc., анонимный доступ только-на-чтение был отключен. Получение исходников AROSЧтобы получить рабочую копию кода и документации AROS необходимо использовать команду "checkout" (сверка), например: > svn checkout https://svn.aros.org/svn/aros/trunk/AROS Эта команда создаст директорию с именем AROS и наполнит её всеми исходниками системы, что может занять значительное время, если ваша сеть медленная. Раздел "contrib" содержит сторонние программы, портированные на AROS. Его нужно сверять, чтобы собрать любой вид AROS: > cd AROS > svn checkout https://svn.aros.org/svn/aros/trunk/contrib Подсказка После сверки (checkout), SVN запомнит источник кода. Получение дополнительного исходного кодаОтдельно от основного кода AROS, который мы получили в предыдущем абзаце, на SVN сервере есть другое содержимое, не связанное прямо с кодом ОС. Например, раздел "binaries", содержащий изображения, например, скриншоты, бэкдропы и и т.п., и раздел "documentation", содержащий исходники для построения содержимого сайта. Список имеющихся разделов можно получить с помощью следующей команды: > svn ls https://svn.aros.org/svn/aros/trunk/ Обновление исходного кодаПосле сверки исходного кода естественным желанием будет периодическое их обновление для получения последних внесенных изменений. Для этого используется команда "update": > cd AROS > svn update При этом в вашу копию будут внесены изменения, внесенные другими разработчиками и сверены новые, добавленные директории и файлы. Если кто-то внес изменения в файл, который вы редактируете локально, SVN попытается автоматически совместить файлы. Если были изменены одни и теже строки, SVN скорее всего, не сможет закончить совмещение кода. Если такое случается, SVN выдаст сообщение о конфликте и сохранит обе версии файла разделенные <<<< You need to edit the file and resolve the conflict manually (Придётся редактировать файл и разрешать конфликт вручную). Предупреждение Один лишь факт, что SVN успешно объединила изменения, внесенные остальными в ваш код, отнюдь не значит, что всё в порядке. Заботой SVN является текстовое содержание, и после слияния могут оставаться логические конфликты (например, если кто-то изменил семантику использования функции, которую вы применяете в своём коде). Следует всегда просматривать объединенные файлы и проверять, имеет ли смысл написанное в них. Внесение измененийЕсли вы считаете, что внесенные вами изменения достойны того, чтобы поделиться ими с остальными, следует использовать команду "commit": > svn commit Также можно задать список вносимых фалов, иначе SVN рекурсивно просматривает все подкаталоги текущего каталога, находит измененные вами файлы и вносит их. Перед посылкой файлов на сервер SVN запросит у вас комментарий для данной посылки. Обычно эти комментарии содержат краткое описание изменений, а иногда, и их объяснение. Хорошо написанные комментарии очень важны, поскольку они помогают остальным разработчикам видеть ваши изменения, и, возможно, понимать, зачем они внесены. Комментарии накапливаются и затем посылаются ежедневным дайджестом в список рассылки разработчиков (и SVN Mailing List) с тем, чтобы все желающие были в курсе разработок, ведущихся в базе. Перед внесением ваших изменений в базу, следует сперва сделать обновление вашей локальной копии, чтобы проверить, изменялись ли те файлы, над которыми вы работали. Если файлы были изменены, перед внесением изменений следует разрешить все конфликты. Также, убедитесь, что вы проверили ваши изменения перед внесением, по крайней мере, на предмет того, не нарушат ли они сборку системы. Добавление новых файлов и директорийДля добавления новых файлов и директорий в репозиторий, используйте команду "add": > svn add file.c > svn add dir SVN не станет автоматически заглядывать в новосозданные директории и добавлять их содержимое (в отличие, например, от TortoiseSVN), это следует сделать вручную. После добавления файла, следует использовать команду "commit" для их действительного добавления. ИмпортЕсли необходимо добавить большое количество файлов, такие, как исходный код уже имеющейся программы, команды "svn add" быстро становятся утомляющими. В таких случаях следует использовать команду "svn import". К сожалению, раздел руководства по SVN, посвященный этой команде, написан из рук вон плохо, так что следует привести некоторые примеры:
Дополнительная документацияБолее подробная информация про SVN, разумеется, может быть найдена в страницах руководства (manual pages) и прочей документации, прилагающихся к самой SVN. Также есть несколько сайтов, содержащих полезные учебники и руководства, которые могут оказаться более простыми для чтения. Очень рекомендуются следующие страницы: |
Copyright © 1995-2008, The AROS Development Team. Все права защищены. Amiga© является торговым знаком Amiga Inc. Все прочие торговые знаки принадлежат их собственникам. |