http://www.aros.orgAROS-ExecTeam AROSAROS-Exec Archives

Начало

English

Deutsch

Ελληυικά

Français

Italiano

Nederlands

Polski

Português

Русский

Español

Suomi

Svenska

Česky


Новости

Архив

Введение

Текущее состояние
Снимки экрана
Порты
Лицензия

Загрузка (Download)


Документация

Пользователи
Установка
Использование
Команды CLI-shell
Applications
ЧАВО(FAQ)
Разработчики
Участие
План развития
Сообщить об ошибке
Работа с SVN
Сборка
Руководство по разработке приложений
Руководство по разработке приложений Zune
Руководство по системной разработке
Руководство по отладке
Справочная информация
Определения
Руководство по интерфейсу (UI Style)
Документирование
Портирование
Перевод
Заметки
Ссылки

Как с нами связаться

Списки рассылки
Каналы IRC

Участники проекта

Благодарности


Изображения

Разработчики
Разработчики вместе

Спонсоры

Наши баннеры

Ссылки

SourceForge Logo

Работа с 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, посвященный этой команде, написан из рук вон плохо, так что следует привести некоторые примеры:

  1. Добавьте файлы и директории, подлежащие импорту в любое удобное место, но только не пределах вашей рабочей копии. Запуск команды "import" для директории, расположенной в пределах рабочей копии, может привести к весьма странным результатам, поэтому, этого лучше избегать.

  2. Смените текущую директорию на директорию с файлами для импорта:

    > cd name-1.2.3
    
  3. Импортируйте файлы командой "svn import":

    > svn import -m <комментарий> <путь назначения>
    

    При этом все файлы будут рекурсивно импортированы в репозиторий из текущей директории и ниже, по указанному пути и с заданным комментарием. На самом деле, будут добавлены не все файлы: SVN игнорирует имена файлов, характерные для резервных и скрытых файлов, такие как #?.bak, .#? и #?~.

    Несмотря на это, все файлы, которые не должны попасть в репозиторий, должны быть удалены перед импортом. Не пытайтесь остановить SVN в процессе импорта, если будет добавлен какой-то лишний файл. Лучше зделайте себе заметку, и удалите его сразу после окончания импорта.

    Например, если нужно импортировать исходники SVN 1.1.3 в директорию "contrib/development/versioning/svn":

    > cd subversion-1.1.3
    > svn import -m "Initial import of SVN 1.11.12"
    \ https://svn.aros.org/svn/aros/trunk/contrib/development/versioning/svn
    

Дополнительная документация

Более подробная информация про SVN, разумеется, может быть найдена в страницах руководства (manual pages) и прочей документации, прилагающихся к самой SVN. Также есть несколько сайтов, содержащих полезные учебники и руководства, которые могут оказаться более простыми для чтения. Очень рекомендуются следующие страницы:


Copyright © 1995-2008, The AROS Development Team. Все права защищены.
Amiga© является торговым знаком Amiga Inc. Все прочие торговые знаки принадлежат их собственникам.