Как настроить и получить доступ к моему хранилищу Subversion после установки Subversion на мой выделенный сервер GoDaddy CentOS - PullRequest
2 голосов
/ 11 января 2012

Я успешно установил Subversion на моем сервере.Когда я запускаю команду:

which svn

, я получаю ответ:

/usr/bin/svn

Я создаю репозиторий в своем корневом каталоге, который является моей папкой httpdocs, с помощью следующей команды:

svnadmin create ~/svn

Я успешно создал следующие файлы и папки и настроил их, и внутри каталога svn я вижу следующие файлы и каталоги:

conf  db  format  hooks  locks  README.txt

Но я не могу создать каталоги стволов, ветвей и тегов,На самом деле я не могу создавать каталоги периода.Вот команда, которую я использовал:

svn mkdir file:///httpdocs/svn/site

Когда я делаю эту команду, я получаю следующее сообщение:

svn: Could not use external editor to fetch log message; consider setting the
$SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no
'editor-cmd' run-time configuration option was found

Также, когда я набираю URL:

http://mydomain.com/svn

Я получаю следующее сообщение:

404 - Not Found 

Что мне нужно сделать, чтобы сконфигурировать мой репозиторий, проверьте, действительно ли мой репозиторий работает.Да, и я выполнил следующую команду:

svnserve -d

Ответы [ 2 ]

6 голосов
/ 13 января 2012

Я создаю репозиторий внутри своего корневого каталога, который является моей папкой 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 (расположенный в том же каталоге), чтобы настроить пользователей и их пароли. Оба очень просты, но их легко забыть, и если вы этого не сделаете, вы ничего не сможете добавить в свой репозиторий.

1 голос
/ 27 апреля 2012

когда вам нужно транкировать ветки и теги, чем вам нужно скачать import_dirs.copy

чем после cd /location/import_dirs.copy чем выполнить чем команда

cd /data/svn/import_dirs.copy/ 
svn import  file:///location of repos/reposname/  -m "inital message"

это примероб этом .....

cd /home/raj/import_dirs.copy/
svn import  file:///srv/svn/nmg/  -m "inital message"

чем были сделаны ветви и метки

...