Здравствуйте, _DEBUG, Вы писали:
DEB>Кто нибудь пользуется?
Я пользуюсь, правда недавно — хорошая вещч.
Сервер svn может работать как сам по себе, так и в качестве модуля Apache. Я использую именно этот вариант. Глюков пока не замечено.
Скоро будет русский перевод полного руководства по Subversion.
Если есть заинтересованность у народа, могу накидать типа QuickStart по Subversion для Windows. Надо? Сейчас самое время начинать пользовать — скоро релиз выйдет.
DEB>Есть ли клиенты для винды?
svn.exe
Графических пока нет. Есть некий RapidSVN, но это поделие и клиентом-то назвать язык не поворачивается.
Здравствуйте, Dimentiy, Вы писали:
D>Здравствуйте, _DEBUG, Вы писали:
DEB>>Кто нибудь пользуется?
D>Если есть заинтересованность у народа, могу накидать типа QuickStart по Subversion для Windows. Надо? Сейчас самое время начинать пользовать — скоро релиз выйдет.
Если не сложно Сейчас сижу разбираюсь с ним — любая помощь очень кстати.
DEB>>Есть ли клиенты для винды?
D>svn.exe D>Графических пока нет. Есть некий RapidSVN, но это поделие и клиентом-то назвать язык не поворачивается.
D>Можно написать в рамках RSDN.
Хорошая мысль — готов принять посильное участие
Disclaimer: Прошу относиться с пониманием к тому, что данный текст пишется "на коленке" и разумеется не может рассматриваться как полноценное описание. Цель описания — только создать и настроить простейший репозиторий и начать работу с системой svn.
1. Использованное программное обеспечение:
----- Apache 2.0.44
(apache_2.0.44-win32-x86-no_ssl.msi, 5 000 704 bytes)
(Текущая версия 2.0.45, но я использовал 0.44, поэтому так и описываю. Отличий в настройке нет.) Subversion
(svn-0.20.0-setup.exe, 3 806 357 bytes)
Для заметки: Зачем нужен Apache?
Доступ к репозиторию Subversion возможен несколькими способами — локально, с использованием собственного протокола и standalone сервера, а также с использованием Apache и WebDAV. Последний способ, имхо, является предпочтительным — настройка доступа осуществляется средствами Apache и соответсвенно очень конфигурабельна, протокол http работает везде где только можно, надёжность Apache в общем-то доказана временем. Кроме того, хотя это уже и не так важно для нашего дела, система Subversion построена на APR (Apache Portable Runtime) и портируется на все платформы, на которых работает Апач. Ну, а с использованием локальных файлов вообще, ИМХО, лишена смысла
2. Установка продуктов
-----
Используя стандартные процедуры установки, устанавливаем Subversion и Apache.
Примем для простоты, что конечные директории установки, соответственно, C:\Program Files\Subversion\ и C:\Program Files\Apache Group\Apache2\ (директории по умолчанию).
Необходимо убедиться, что переменная PATH содержит путь к C:\Program Files\Subversion\ . Как это делается в Win9x, я уже не помню. По-моему, надо перегружаться — хотя не догма. Это необходимо для использования утилит svn и svnadmin из командной строки.
Всё, базова установка совершена. Далее мы будем настраивать Apache, репозиторий и сеть.
3. Конфигурация сети.
-----
Имя хоста для Subversion. Для простоты примем, что мы настраиваем хост svn.rsdn.ru Разумеется, каждый системный администратор должен будет использовать при установке и настройке имя другого хоста и правильно настроить DNS, если предполагается коллективная работа. Для простоты опять же, этот вариант мы рассматривать не будем и просто напишем в файл hosts (местоположение на WinNT/2000/XP — %SystemRoot%\System32\drivers\etc\hosts) следующую строчку:
# 38.25.63.10 x.acme.com
# x client host
127.0.0.1 localhost 127.0.0.1 svn.rsdn.ru
Теперь обращение к svn.rsdn.ru с Вашей машины будет перенаправляться на 127.0.0.1, где и стоит Apache. Для начала работы с системой достаточно. Впоследствии Вы настроите правильные IP-адреса.
4. Настройка Apache
-----
Настройка Apache осуществляется с использованием настроечного файла httpd.conf в каталоге C:\Program Files\Apache Group\Apache2\conf\ .
Настройка апача — дело тонкое и многогранное, на httpd.apache.org лежит исчерпывающая документация на эту тему, и мы касаться её не будем. Для нашей задачи понадобится не так много настроек.
Оговорим только ещё одну вещч. Apache допускает, как полноценный веб-сервер, обслуживание множества виртуальных хостов. Для простоты описания примем, что данный Apache обслуживать будет только Subversion. Тот, что использует VHOSTS — знает что делать с файлами настройки в своём случае.
Итак. Имеем стандартный файл httpd.conf. Вносим в него следующие изменения:
— Устанавливаем переменную ServerName:
ServerName svn.rsdn.ru:80
— Разрешаем использование модуля mod_dav:
#LoadModule dav_module modules/mod_dav.so
меняем на LoadModule dav_module modules/mod_dav.so
Здесь предполагается, что физически репозиторий будет находиться в каталоге "C:\Repository". Доступ к корню репозитория будет осуществляться по адресу http://svn.rsdn.ru/svn/
Обратите внимание на использование прямых слэшей вместо обратных в настройках Apache.
Также нужно скопировать файл mod_dav_svn.so из поставки Subversion в каталог C:\Program Files\Apache Group\Apache2\modules\ и файл libdb40.dll из поставки Subversion — в каталог "C:\Program Files\Apache Group\Apache2\bin\" .
Это собственно модуль системы Subversion и библиотека доступа к репозиторию, используемая модулем. В принципе, libdb40.dll может наверное находиться не в bin\, а в любой директории, описанной в переменной PATH.
Перезапустим сервис Apache.
5. Настройка Subversion, создание репозитория.
-----
В состав системы Subversion входят две основные консольные утилиты — svn.exe и svnadmin.exe. Первая утилита — собственно клиент, используемый нами в работе. svnadmin — утилита для обслуживания репозитория — создания, создания резервных копий и т.д.
Запустим консоль (cmd.exe). Подадим команду:
svnadmin create "C:\repository"
Если нет сообщений об ошибках — значит наш репозиторий создан!
В англоязычной документации команда "svnadmin create ..." описана как "svn create ....". "Не верь глазам своим".. очепятка. Уже описана в списке багов.
-----
Собственно, на этом этапе система готова к работе. Это не значит, что работа завершена — нужно назначить в случае необходимости разные права доступа для разных пользователей, возможно доступ посредством ssh — но эти вопросы больше относятся к конфигурации Apache и здесь их рассматривать ни к чему.
Главное — система на этоп этапе готова к началу работы.
Описывать собственно работу с системой я не буду — в последнем номере журнала RSDN за 2002 год есть хорошая статья о работе с CVS. Последовательность импорта начального проекта, синхронизации — аналогична и для svn.
Надо однако учитывать, что идеология-то общая, а реализация у cvs и svn разная. Посему за деталями, пока я книжку не перевёл, отсылаю к англоязычному оригиналу, а здесь просто приведу некоторые первые команды:
svn mkdir -m "Directory for my test project" http://svn.rsdn.ru/svn/testproject
— создаём тестовую директорию testproject в репозитории для нашего первого проекта. Обратите внимание на изменение номера Revision репозитория. В отличие от CVS, где все файлы имеют свою нумерацию — в svn любое изменение репозитория приводит к изменению общего Revision number.
svn import -m "initial release" http://svn.shtrih-m.ru/svn/testproject .
— Включаем в репозиторий файлы из текущего каталога с подкаталогами (обратите внимание на точку в конце команды).
Выполнение команды svn co http://svn.shtrih-m.ru/svn/testproject .
в пустой директории создаст рабочую копию проекта, полученную из репозитория, и на этом этапе можно начинать работу.
Здравствуйте, Dimentiy, Вы писали:
S>>А возможна ли связка IIS + SVN?
Читая доки я так понял, что невозможна (наверное пока )
На настоящий момент возможна работа только с локальными файлами и Апачем.
Есть исходники — можно самим дописать
Здравствуйте, _DEBUG, Вы писали:
_DE>Здравствуйте, Dimentiy, Вы писали:
S>>А возможна ли связка IIS + SVN?
Я не спрашивал, я отвечал на этот вопрос. См. выше дерево сообщений.
_DE>На настоящий момент возможна работа только с локальными файлами и Апачем.
Это не так. Возможна работа с использованием ra_dav (используя модуль apache), ra_file (с локальными файлами) и ra_svn (с использованием собственного протокола и сервера svnserve). Так что вариантов на само деле три, а не два.
В девелоперском списке рассылки сегодня обсуждается забавная тема "Why is subversion so slow?"
Именно с применением mod_dav_svn. Моё имхо — хотя тормоза и присутствуют, они не настолько серьёзны, чтобы париться на эту тему.
_DE>Есть исходники — можно самим дописать
Можно-то можно, а нужно ли? Какой выигрыш это даёт?
Гораздо нужнее написать MSSCCI(SCC API) — интерфейс к Subversion, но Microsoft, к сожалению, зажимает спецификации.
_DE>Кстати — есть фри ГУИ клиент для него TortoiseSVN
Отстой этот TortoiseSVN (моё сугубое ИМХО). Как и TortoiseCVS.
_DE>Кстати — есть фри ГУИ клиент для него TortoiseSVN
D>Отстой этот TortoiseSVN (моё сугубое ИМХО). Как и TortoiseCVS.
Подивившись на вашу реакцию, которую по счастию уже снёс модератор — скачал я новую версию TortoiseSVN.
Ну, что сказать — действительно, можно пользоваться. Даже наверное удобно. Кому-то. Так что свои слова насчёт "отстой" я, скромно потупившись, возьму обратно.
Но речь не об этом. TortoiseSVN позволяет делать только ограниченное количество операций. В этом и её прелесть, и слабость. Прелесть в том, что никакой лишней информации. Update, Commit, Add... в общем-то, и всё. Легко и понятно, и научить пользоваться можно быстро. А слабость в том, что для работы этого недостаточно.
Для обычного разработчика, имхо, вообще важнее возможность работать с версиями из своей IDE, чем из приложения Explorer.
Автоматизации — никакой. Всё ручками. А зачем?
Если обобщить, в среде Windows нужен COM-объект вроде "SourceControl.Subversion", чтобы можно было использовать его везде, где хочется — в том числе и в Tortoise. Так правильно.
Тогда к одной и той же функциональности можно будет делать разные интерфейсы в зависимости от задач и уровня пользователей.
А так как сделано — извините, неправильно. Не тот это путь. Имхо, конечно.
Здравствуйте, _DEBUG, Вы писали:
_DE>Есть ли клиенты для винды?
Вышла альфа-версия плагина для VS.Net. Домашняя страница проекта: http://ankhsvn.tigris.org/
Можно пробовать пользоваться (и писать отзывы авторам!).
Что до клиента TortoiseSVN — он теперь нормально работает со всеми файлами (интернациональные символы в имени файла). Текущая версия — 0.10, вполне стабильна.
Версия 0.11 появится в пятницу и (на любителя) будет включать мою русификацию .
Re[4]: Ну раз надо, лови ;-) Subversion(SVN) QuickStart
D>Disclaimer: Прошу относиться с пониманием к тому, что данный текст пишется "на коленке" и разумеется не может рассматриваться как полноценное описание. Цель описания — только создать и настроить простейший репозиторий и начать работу с системой svn.
Если есть желание немного расширить этот материал, то я готов в свою очередь разместить его на своём сайте.
Здравствуйте, Akzhan, Вы писали:
A>Если есть желание немного расширить этот материал, то я готов в свою очередь разместить его на своём сайте.
Вообще есть страница, посвященная Subversion, на сайте Алексея Махоткина. Но там пока ничего нет Хотя у него другая ситуация, он насколько я понимаю пишет с коллегами из Новософта CVS следующего поколения.
Так что думаю, что тексты эти будут на моём сайте (вернее, будет специальный сайт) — так сложилось, что я сейчас перевожу основной мануал по Subversion и с завтрашнего дня являюсь Release-Manager проекта TortoiseSVN.
Окончательные тексты выкладывать рано, поскольку система развивается (и соответственно меняется). Но эти изменения уже не носят принципиальный характер, думаю скоро всё закончится релизом.
p.s. Нет желания написать svn-плагин для Delphi/Builder?
Re[6]: Ну раз надо, лови ;-) Subversion(SVN) QuickStart
Здравствуйте, Dimentiy, Вы писали:
D>p.s. Нет желания написать svn-плагин для Delphi/Builder?
А разве Athlant не поддерживает SVN? Я являюсь зарегистрированным пользователем Devrace Athlant (http://www.devrace.com/) и принимал некоторое участие как бета-тестер.
Здравствуйте, Dimentiy, Вы писали:
D>Гораздо нужнее написать MSSCCI(SCC API) — интерфейс к Subversion, но Microsoft, к сожалению, зажимает спецификации.
Тогда Athlant не поддерживает Subversion.
Кстати, Андрей Семак, автор Athlant, может либо встроить модуль поддержки Subversion, либо помочь Вам в получении доступа к MS SCCI API spec.
По крайней мере он такой доступ получил (afair, через Сергея Вострикова).
Здравствуйте, Akzhan, Вы писали:
A>Здравствуйте, Dimentiy, Вы писали:
D>p.s. Нет желания написать svn-плагин для Delphi/Builder?
A>А разве Athlant не поддерживает SVN? Я являюсь зарегистрированным пользователем Devrace Athlant (http://www.devrace.com/) и принимал некоторое участие как бета-тестер.
IMHO, не поддерживает. Системы Subversion-то, как таковой, нет ещё — только бета-версии.
А вообще, у меня сложилось очень неоднозначное, скажу дипломатично, мнение об Athlant. Во всяком случае, EAccessViolation я видел регулярно. Ничего конкретного не скажу. Возможно, конфликт был с чем-то, с моими классами, с JEDI — не знаю. Возможно, эти проблемы уже решены (если они были).
Хотя откровенно говоря, я проникся идеей интеграции в Shell, заложенной в TortoiseSVN. Мне чуть выше по тексту минусов накидали — пришлось сначала разобраться, потом проникнуться, потом включиться в команду Так что нужен ли такой плагин, равно как и плагин к VS.Net — большой вопрос. Конечно, чем больше выбор тем лучше — но лично я сейчас обхожусь Tortoise.
Re[9]: Нет. Subversion - кроссплатформенный продукт.
Здравствуйте, Akzhan, Вы писали:
A>Кстати, Андрей Семак, автор Athlant, может либо встроить модуль поддержки Subversion
Думаю, это было бы очень неплохо — думаю, в первую очередь для него самого как автора Athlant — лишнее преимущество.
A>, либо помочь Вам в получении доступа к MS SCCI API spec. A>По крайней мере он такой доступ получил (afair, через Сергея Вострикова).
Конкретно мне доступ этот сейчас не нужен. Мне бы мануал перевести на хорошем уровне и FAQ-и для пользователей Windows на русском написать ("родной" мануал рассчитан в первую очередь на консольный режим использования и Unix). Причём неплохо успеть сделать это к релизу
Кроме того, уточню — я ни в коем разе не разработчик Subversion. Базовые модули пишутся людьми из CollabNet в основном, на фултайме. Просто нравится мне этот проект, правильный он какой-то Я слежу, чтобы в TortoiseSVN было всё нормально с русским, и только.
Кстати, в девелоперском списке рассылки Subversion пробегают русские имена, причём есть именно что разработчики отдельных вещей. Но им, скорее всего, не до переводов. Так что, каждому своё.
Здравствуйте, Dimentiy, Вы писали:
D>А вообще, у меня сложилось очень неоднозначное, скажу дипломатично, мнение об Athlant. Во всяком случае, EAccessViolation я видел регулярно. Ничего конкретного не скажу. Возможно, конфликт был с чем-то, с моими классами, с JEDI — не знаю. Возможно, эти проблемы уже решены (если они были).
Хе. Были малопринципиальные глюки в Athlant в ранних версиях. Но сейчас это вылизанный и удобный продукт. Мне им пользоваться удобнее, чем любым другим, возможно, исключая встроенный в VS.NET.
Если найдёшь ошибки в последних версиях, не поленись сообщить автору.
Да, чуть не забыл: я разместил feature request на Subversion API для Devrace Athlant.