Svn

В системе FreeBSD нет штатного клиента svn, только cvs.

Только клиент возможно ли поставить? Наверное, нет.

Установка клиента
make install clean -C /usr/ports/devel/subversion Ставится по умолчанию. Конфигурации нет, но есть настройки в Makefile. Из опция оставлял только BDB


 * Apache Portability Library (APR) все равно зачем-то ставится. Также ставит python
 * - [ ] Neon is an HTTP and  WebDAV client library for  Unix systems, with  a C interface. Его не надо ставить.

Повторная установка sqlite ставится зачем-то. с опциями по умолчанию и tcl

Не видит BDB You should build `' with Berkeley DB (4 or 5) support to use subversion with it.

Сама переменная, которая проверяется - не определена     ${ECHO_MSG} '`'"${BDB_VERSION}'" ; \ apr-1-config и apu-1-config

Выключил neon- все равно ставит, также apr...  ===>  Registering installation for subversion-1.6.17 ===> Cleaning for apr-ipv6-devrandom-gdbm-db42-1.4.5.1.3.12 ===> Cleaning for db42-4.2.52_5 ===> Cleaning for gdbm-1.8.3_3 ===> Cleaning for subversion-1.6.17 
 * Третья установка

OPTIONS (в комментарии)  The following configuration options are available for subversion-1.6.17 and dependencies ===> The following configuration options are available for subversion-1.6.17: MOD_DAV_SVN=off "mod_dav_svn module for Apache 2.X"    MOD_DONTDOTHAT=off "mod_dontdothat for Apache 2.X"     NEON=off "WebDAV/Delta-V repo access module (neon)" SERF=off "WebDAV/Delta-V repo access module (serf)" SASL=off "SASL2 authorization support" BDB=on "Berkeley DB (4 or 5) repository backend" ASVN=off "Build and install Archive SVN (asvn)" MAINTAINER_DEBUG=off "Build debug version" SVNSERVE_WRAPPER=off "Enable svnserve wrapper" SVNAUTHZ_VALIDATE=off "install svnauthz-validate" STATIC=off "Build static version (no shared libs)" GNOME_KEYRING=off "Build with GNOME Keyring auth support" KDE_KWALLET=off "Build with KDE KWallet auth support" BOOK=off "Install the Subversion Book" ===> Use 'make config' to modify these settings ===> The following configuration options are available for sqlite3-3.7.6.3: FTS3=on "Enable FTS3/4 (Full Text Search) module" ICU=off "Enable built with ICU" RTREE=off "Enable R*Tree module" RAMTABLE=off "Store temporary tables in RAM = yes" UPD_DEL_LIMIT=off "ORDER BY and LIMIT on UPDATE and DELETE" SOUNDEX=off "Enables the soundex SQL function" METADATA=on "Enable column metadata" STAT2=off "Help SQLite to chose a better query plan" MEMMAN=off "Allows it to release unused memory" SECURE_DELETE=on "Overwrite deleted information with zeros" UNLOCK_NOTIFY=on "Enable notification on unlocking" THREADSAFE=on "Build thread-safe library" EXTENSION=on "Allow loadable extensions" TCLWRAPPER=off "Enable TCL wrapper" ===> Use 'make config' to modify these settings ===> The following configuration options are available for apr-ipv6-devrandom-gdbm-db42-1.4.5.1.3.12: THREADS=on "Enable Threads in apr" IPV6=on "Enable IPV6 Support in apr" BDB=on "Enable Berkley BDB support in apr-util" GDBM=on "Enable GNU dbm support in apr-util" LDAP=off "Enable LDAP support in apr-util" MYSQL=off "Enable MySQL suport in apr-util" NDBM=off "Enable NDBM support in apr-util" PGSQL=off "Enable Postgresql suport in apr-util" SQLITE=off "Enable SQLite3 support in apr-util" DEVRANDOM=on "Use /dev/random or compatible in apr" ===> Use 'make config' to modify these settings ===> The following configuration options are available for tcl-8.5.10: TCL85_MAN=off "Install tcl 8.5 function manpages" TZDATA=off "Install tcl timezone data" TCL_MODULES=on "Install tcl common modules" ===> Use 'make config' to modify these settings ===> The following configuration options are available for perl-5.12.3: DEBUGGING=off "Build with debugging support" GDBM=off "Build GDBM_File extension" PERL_MALLOC=off "Use Perl malloc" PERL_64BITINT=on "Use 64 bit integers (on i386)" THREADS=off "Build threaded perl" MULTIPLICITY=off "Use multiplicity" SITECUSTOMIZE=off "Run-time customization of @INC" USE_PERL=on "Rewrite links in /usr/bin" ===> Use 'make config' to modify these settings ===> The following configuration options are available for python27-2.7.1_1: THREADS=on "Enable thread support" HUGE_STACK_SIZE=off "Use a larger thread stack" SEM=off "Use POSIX semaphores (experimental)" PTH=off "Use GNU Pth for threading/multiprocessing" UCS4=on "Use UCS4 for unicode support" PYMALLOC=on "Use python's internal malloc" IPV6=on "Enable IPv6 support" FPECTL=off "Enable floating point exception handling" ===> Use 'make config' to modify these settings ===> The following configuration options are available for libiconv-1.13.1_1: EXTRA_ENCODINGS=on "Include extra character sets" EXTRA_PATCHES=off "Apply patches to fix CP932, add EUCJP-MS" ===> Use 'make config' to modify these settings ===> The following configuration options are available for m4-1.4.16,1: LIBSIGSEGV=off "Use libsigsegv for better diagnostics" ===> Use 'make config' to modify these settings

-->

Клиент для MS Windows
Клиент для MS Windows

Клиент реализован не как отдельная программа со своим окном, а интегрируется в контекстное меню, в котором после установки клиента появляются новые пункты.

В результате скачается содержимое репозитория на диск.
 * 1) Для получения копии репозитария надо создать директорию в произвольном месте.
 * 2) на ней щелкнуть правой кнопкой и выбрать пункт Svn checkout (пиктограмма с цилиндриком и зеленой стрелочкой)
 * 3) В поле самое первое svn://tushinec.ru/yally и больше ничего не трогая щелкнуть по кнопке ОК
 * 4) дальше логин и пароль
 * В свойствах директории появится вкладка, с которой можно вызывать разные функции свн.
 * Для этого репозитария логин и пароль вводить больше не потребуется - они сохраняются. При необходимости удалить их, нужно через контекстное меню выбрать SVN - settings -saved data - authentication data - [clear]

Получение копии файлов из репозитария
Создать директорию и в ней выполнить mkdir svn svn co svn://tushinec.ru/yally Authentication realm:  444444444-4444-444-444-44444444 Username: leksey Password for 'leksey':  A   yally/trunk A   yally/trunk/site A   yally/trunk/site/style A   yally/trunk/site/style/style.css A   yally/trunk/site/style/icon Checked out revision 27.

Создание общепринятой структуры для дерева mkdir trunk ; mkdir tags ; mkdir branches Добавление в него директорий svn add *  A        branches A        tags A        trunk<BR> </i>

эта команда добавляет файлы для контроля, на сервер не отправляется ничего при этом. но svn теперь следит за ними

в директории лежит директория .svn, где лежат все данные, необходимые для svn

чтобы отправить на сервер. В качестве параметра надо указывать самый верхний уровень добавляемой структуры: svn commit появится открытый в vi тест - там нужно ввести комментарий к комиту - initial svn commit <i> svn-commit.tmp: 6 строк, 103 символов. Adding        branches<BR> Adding        tags<BR> Adding        trunk<BR> Committed revision 1. </i>

Для передачи комментария из строки --message revision_comment

Скопировал файл первую ревизию cd trunk svn add invite.txt

Работа в консольном клиенте
Получить текущую версию из репозитария и в stout svn cut message.php

В snv используется встроенный diff, по умолчанию отображается в unified-режиме, которая показываются три строки перед изменением (ключ -u у обычного diff). Как этого избежать не сумел разобраться.

Разница между локальным файлом и в репозитарии svn diff Разница между текущей и указанной ревизией svn -r 87 diff message.php | iconv -f cp1251 -t koi8-r Разница между двумя определёнными ревизиями

Не добавленные файлы - те что есть локально svn stat

Получить рекурсивно последнее состояние. svn up

Удаление svn delete invite.txt D        invite.txt svn commit Deleting      trunk/invite.txt<BR> Committed revision 20

Информация о файле - последняя ревизия и автор svn info invite.txt Path: invite.txt<BR> Name: invite.txt<BR> URL: svn://tushinec.ru/yally/trunk/site/mail/invite.txt<BR> Repository Root: svn://tushinec.ru/yally<BR> Repository UUID: 25461850-d943-df11-88e7-001cc032b2cc<BR> Revision: 19<BR> Node Kind: file<BR> Schedule: normal<BR> Last Changed Author: dimarik<BR> Last Changed Rev: 13<BR> Last Changed Date: 2010-04-10 13:21:45 +0400 (сб, 10 апр 2010)<BR> Text Last Updated: 2010-04-10 13:41:27 +0400 (сб, 10 апр 2010)<BR> Checksum: 326bf614b795ea332da5bb35ed5c2a2c<BR>

svn cat invite.txt Просмотреть файл из репозитария

Экспорт из репозитария определенной ревизии. Если убрать номер, то будет получена последняя. svn -r 83 export svn://tushinec.ru/yally/trunk/ --force /usr/local/www/data/yally.nonename.com/

svn list Просмотр списка файлов в текущей директории репозитария

История ревизий и комментарии к ним svn log message.php <BR> r85 | leksey | 2010-05-10 23:59:58 +0400 (пн, 10 май 2010) | 2 lines<BR> предыдущая ревизия в кои8-р, исправляюсь<BR> <BR> r84 | leksey | 2010-05-10 23:58:16 +0400 (пн, 10 май 2010) | 2 lines<BR> Правка орфографии и переписывание. Есть замечания (в комментах).<BR>

Конфликты
svn commit invite.txt svn: Commit failed (details follow): svn: Aborting commit: '/usr/home/lke/yally/yally/trunk/site/mail/invite.txt' remains in conflict

ls invite.txt invite.txt      invite.txt.mine  invite.txt.r19   invite.txt.r25

mv invite.txt.r19 invite.txt

svn resolved invite.txt Resolved conflicted state of 'invite.txt'

При запуске клиента  --- ATTENTION! Your password for authentication realm:

<svn://tushinec.ru:3690> vur-vur-vur-vur

can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/root/.subversion/servers'. --- </PRE>

В случае, если это не директория локального репозитария (нет .svn) или нет прав на запись (?) svn up Skipped '.'