Итак, я решил создать SVN репозиторий, для одного проекта, который мы неоднократно обсуждали с одним моим другом. И я даже уже начал писать его части.
Раньше я неоднократно порывался создать единый репозиторий для всех проектов, но натыкался на некоторые неудобства работы с таким глобальным репозиторием. Поэтому я решил создавать для каждого проекта свой репозиторий. Все репозитории я решил складывать в одну директорию
/mnt/store2/svn. В первую очередь необходимо создать каталог для моего проекта, и создать репозиторий в нём:
mkdir /mnt/store2/svn/MahJong-Night
svnadmin create /mnt/store2/svn/MahJong-Night
В принципе репозиторий создан, и можно импортировать в него код, но пока что код можно импортировать только локально указывая в качестве имени репозитория
file:///mnt/store2/svn/MahJong-Night. Чтобы иметь возможность работать с этим репозиторием по сети необходимо запустить SVN сервер. Это делается следующим образом:
svnserve -d -T -r /mnt/store3/svn
Ключ
-d необходим для запуска сервера в режиме демона,
-T для обработки запроса в отдельном потоке вместо того, чтобы создавать отдельные процессы, а
-r для того, чтобы при работе по сети были доступны только репозитории расположенные в указанной директории.
После того, как сервер запущен необходимо изменить настройки доступа к репозиторию по сети. Они храятся в файле
conf/svnserve.conf в директории репозитория (соответственно полный путь будет
/mnt/store2/svn/MahJong-Night/conf/svnserve.conf). Так как я хочу обеспечить аноимный доступ на чтение и доступ на дапись только для авторизованных пользователей, то содержимое этого файла должно быть следующим:
[general]
anon-access = read
auth-access = write
password-db = passwd
realm = MahJong-Night project repository.
Так же необходимо подредактировать файл
passwd в той же директории, приведя его примерно к следующему виду:
[users]
vestnik = *******
Думаю, что комментарии к содержимому этих файлов излишни. Да, пароль здесь храниться в явном виде, а это наводит меня на мысль о настроке доступа через ssh+svn с авторизацией по ключам. Но это как-нибудь в другой раз.
Теперь можно импотировать написанный код. Переходим в директорию с кодом и выполняем:
svn import mahjong-night svn://localhost/MahJong-Night --username vestnik --password *******