Разработчики FreeBSD уже довольно давно работают над заменой системы управления версиями, и на данный момент, вместо CVS проект использует SVN. По факту, коммиты вносятся в SVN, а уже оттуда идет експорт в CVS. Так что рекомендованная система контроля версий - именно SVN. Ну что ж, начнем...
Subversion - свободная централизованная система управления версиями, которая обладает всеми основными функциями CVS, но лишена ее недостатков.
Поскольку SVN все еще не доступно в базовой системе (FreeBSD 9.1), установим subversion из системы портов:
# cd /usr/ports/devel/subversion && make install clean && rehash |
Во время установки порт подтянул еще полтора десятка зависимостей (установка выполнялась на почти "чистую" ось), так что необходимо быть к этому готовым. В моем случае это были следующие порты:
- sqlite3-3.7.16.1
- expat-2.0.1_2
- neon29-0.29.6_4
- apr-1.4.6.1.4.1_3
- db42-4.2.52_5
- python27-2.7.3_6
- automake-1.12.6
- autoconf-2.69
- gdbm-1.9.1
- pth-2.0.7
- libffi-3.0.13
- automake-wrapper-20101119
- m4-1.4.16_1,1
- help2man-1.41.2
- autoconf-wrapper-20101119
- p5-Locale-gettext-1.05_3
Если до этого обновлялись через CVS, то необходимо выполнить "зачистку":
# rm -R /usr/src |
Теперь можно обновляться... Доступно два варианта - по протоколу HTTP и по протоколу SVN.
- HTTP:
# svn checkout http://svn.freebsd.org/base/releng/9.1/ [1] /usr/src |
- SVN
# svn checkout svn://svn.freebsd.org/base/releng/9.1/ /usr/src |
Узнать текущую версию исходных кодов ядра можно в файле /usr/src/sys/conf/newvers.sh. Например:
# cat /usr/src/sys/conf/newvers.sh | grep -A 1 'REVISION=' REVISION="9.1" BRANCH="RELEASE-p3" |
В дальнейшем, для обновлений достаточно будет выполнить такую команду:
# svn update /usr/src/ |
P.S. Вместо команд checkout и update можно использовать сокращённые варианты их написания - co и up, что довольно часто встречается на просторах Интернета.