Я создаю репозиторий внутри своего корневого каталога, который является моей папкой httpdocs, с помощью следующей команды ...
Это не то, как вы заставляете Subversion работать с Apache httpd, если это то, что вы пытаетесь сделать. Вам нужны модули mod_dav и mod_dav_svn для Apache. Возможно, вам придется перекомпилировать Apache, чтобы получить их.
После того, как вы установили mod_dav и mod_dav_svn, вам нужно сконфигурировать ваш файл httpd.conf (или поместить файл конфигурации под httpd conf.d
в зависимости от того, как он настроен в вашей системе), чтобы он работал.
В конце концов, это не так уж сложно. В большинстве установок Apache добавлены mod_dav и mod_dav_svn, и вы можете увидеть, правильно ли настроен ваш файл http.conf. Онлайновое руководство Subversion будет иметь все, что вам нужно , чтобы оно заработало.
svn: не удалось использовать внешний редактор для извлечения сообщения журнала; рассмотреть возможность установки
Переменная среды $ SVN_EDITOR или использование параметров --message (-m) или --file (-F)
svn: ни одна из переменных окружения SVN_EDITOR, VISUAL или EDITOR не установлена, и нет
Обнаружена опция конфигурации во время выполнения 'editor-cmd *
Прочитайте сообщение. Там написано Не удалось использовать внешний редактор , потому что вы его не указали. Снова руководство Subversion on line объясняет это в detail .
Обычно, когда вы фиксируете изменение в Subversion, вам нужно создать сообщение о коммите. Это можно сделать двумя способами:
- Вы используете опцию
-m
, например svn commit -m "This is my commit message"
.
- Вы устанавливаете переменные
SVN_EDITOR
, VISUAL
или EDITOR
на имя программы, которую вы хотите использовать. Например, в Windows вы сказали бы C:> set EDITOR=notepad.exe
. В Unix вы бы сказали что-то вроде $ export EDITOR=vi
. Subversion сначала проверяет значение переменной SVN_EDITOR
, затем VISUAL
, затем EDITOR
. Если ни один из них не установлен, вы увидите ошибку, которую вы видели.
Почему вы получили его по команде svn mkdir
?
Поскольку вы используете форму URL-адреса команды, она создаст каталог, а затем передаст изменения, что потребует сообщения о фиксации. Это должно работать:
svn mkdir -m"Adding the site directory to my repository" file:///httpdocs/svn/site
Теперь вам нужно переместить ваш репозиторий из каталога HTTPDOCs. Это очень плохо, потому что это вредит вашему веб-серверу.
Если вы не хотите использовать протокол file://
, вы можете использовать svnserve
. Это встроенный сервер хранилища Subversion и использует протокол svn://
. Обратите внимание:
$ svnadmin create my_repos #Creates the repository
$ vi my_repos/conf/svnserve.conf #See footnote 1 below
$ vi my_repos/conf/passwd #See footnote 1 below
$ svnserve -r my_repos -d
$ svn mkdir -m "Making basic directory layout svn://localhost/trunk \
> svn://localhost/tags svn://localhost/branches
$ export SVN_EDITOR="vi"
Ваш репозиторий также становится доступным для всех машин в вашей сети. Использование svnserve намного проще, чем Apache httpd, но есть несколько проблем:
- Вы не можете запустить несколько экземпляров
svnserve
, так как он хочет использовать порт 3690 и не хочет делиться. С помощью Apache httpd вы можете иметь несколько репозиториев.
- Настройка безопасности с svnserve ограничена. С помощью Apache я могу использовать каталог Windows Active или LDAP или настроить его вручную.
- Некоторым веб-браузерам хранилищ Subversion не нравится svnserve.
Кстати, если вы этого не сделали, пройдите руководство по Subversion on line . Это одно из лучших руководств, которые я видел для любого проекта с открытым исходным кодом.
1 Когда вы настраиваете свой репозиторий, используя svnserve
, вам нужно отредактировать файл svnserve.conf
, включив строку password-db = passed
, которая примерно равна строке # 20 в файле. Затем вам нужно отредактировать файл passed
(расположенный в том же каталоге), чтобы настроить пользователей и их пароли. Оба очень просты, но их легко забыть, и если вы этого не сделаете, вы ничего не сможете добавить в свой репозиторий.