Четкая инструкция о параметрах пути SVN

Я уже некоторое время работаю, пытаясь лучше понять SVN. Я работаю с сервером Mac OSX Lion. Мне удалось настроить и запустить SVN на машине и сделать так, чтобы я мог регистрировать документы. Тем не менее, я хочу сделать его доступным для дополнительных услуг через Интернет, поэтому, пока многие мои коллеги и я путешествуем, мы все еще можем работать вместе. Я переадресовал порт 3690 (думаю, это порт SVN), а порт для ssh был настроен ранее.

Я установил репозиторий SVN в /Library/Subversion/Repository/, и у меня есть версии и терминал на сервере для тестирования. Я могу подключиться, используя параметр пути file://, но не могу подключиться, используя svn+ssh://username@localhost/MyProject.

Я точно знаю, что могу подключиться через ssh, а ошибка "Репозиторий не найден". Я предполагаю, что мне нужен другой путь, но все статьи о Mac OS, которые я читал, только рассказывают, как настроить его на хосте, а не для использования в локальной сети или извне.

Любые идеи или мысли приветствуются. В качестве ссылки на шаги, которые я предпринял ниже, приведены некоторые ссылки на статьи, над которыми я работал.


person ars265    schedule 12.05.2012    source источник
comment
Попробуйте сначала войти вручную по ssh username@localhost . Затем вы сможете проверить репозитории с URL-адресом /Library/Subversion/Repository/MyProject.   -  person Johan Lundberg    schedule 13.05.2012
comment
Да, я могу, если я сначала войду в систему с помощью терминала через ssh и использую инструмент командной строки или версии для доступа к файлам непосредственно на сервере, он работает нормально, но если я сделаю, как указано выше, я получаю сообщение об ошибке. Репозиторий не найден, почему это может быть ?   -  person ars265    schedule 13.05.2012
comment
Я так понимаю ssh работает и файлы лежат по этому пути. Я также имею в виду, что вы должны использовать этот полный локальный путь, когда используете svn co .   -  person Johan Lundberg    schedule 13.05.2012


Ответы (2)


Прежде всего, убедитесь, что ваш брандмауэр Mac не блокирует вас. Можете ли вы удаленно войти через ssh из другой системы в свою систему? Если нет, перейдите в Системные настройки, выберите параметр Безопасность и конфиденциальность, а затем выберите Брандмауэр. Вам нужно нажать кнопку Дополнительно....

Оказавшись там, убедитесь, что Удаленный вход (SSH) активен через брандмауэр.

После того как вы разрешили ssh доступ к вашему Mac, вам необходимо убедиться, что вы правильно настроили svn+ssh. Попробуйте со своего Mac получить доступ к репозиторию через svn+ssh://, а не через file://. Если вы не можете этого сделать, значит, вы неправильно настроили svn+ssh.

Настройка Subversion для использования svn+ssh — самый сложный из четырех способов доступа к репозиторию Subversion. В отличие от svn:// и http://, сервер репозитория не работает, пока пользователь не войдет в вашу систему.

Когда пользователь подключается к svn+ssh, он немедленно запускает svnserve для доступа к репозиторию Subversion (это svn часть svn+ssh).

Поскольку svnserve работает как пользователь, который использовал ssh для доступа к репозиторию, каждый каталог и файл, созданные в физическом каталоге репозитория, будут принадлежать этому пользователю. Таким образом, вам необходимо убедиться, что все пользователи, имеющие доступ к этому репозиторию, находятся в одной и той же основной группе, и любые созданные файлы или каталоги в каталоге репозитория Subversion доступны для чтения/записи этой группой.

Для того, чтобы убедиться в этом, вам необходимо предпринять следующие шаги:

  • Убедитесь, что все пользователи Mac, имеющие доступ к вашему репозиторию Subversion, имеют одну и ту же основную группу. Вы создаете группу на своем Mac с помощью панели настроек Пользователи и группы. Нажмите +, как при создании нового пользователя, но выберите Группа в раскрывающемся списке. Запишите всех, кто собирается войти в эту группу.
  • When you create the Subversion repository
    • Make sure that all files and directories the repository directory tree are owned by the Subversion group via the chgrp command.
    • Используйте команду chmod, чтобы убедиться, что все дерево каталогов доступно для чтения/записи этой группой Subversion.
  • Вам нужно установить для каждого пользователя umask значение 002 или 0002 вместо 022 или 0022 по умолчанию. Таким образом, когда пользователь создает новый каталог или файл в репозитории, он может быть прочитан и записан любым другим пользователем в группе. В противном случае один пользователь создаст изменение, но другие пользователи не смогут вносить изменения.

Взгляните на эти ссылки из интерактивного руководства по Subversion:

person David W.    schedule 13.05.2012
comment
ОП: Apache с модулями ssl и svn намного проще заставить работать imho. Но я не смог найти хорошую инструкцию для Mac OS. Попробуйте один, ориентированный на Linux. - person Johan Lundberg; 13.05.2012
comment
@JohanLundberg Модули Subversion и SSL уже есть в Apache для Mac OS X. Вам просто нужно настроить их, следуя руководству svnbook.com. Это на самом деле довольно просто. Демон находится в /usr/sbin/httpd, файл конфигурации — в /private/etc/apache2, а модули — в /usr/libexec/apache2. - person David W.; 14.05.2012
comment
Вы сказали, что это самый сложный из 4 способов, но в моих поисках и в учебниках, которые я нашел, я слышал только упоминание о двух, svn + ssh и apache с модулями, так каковы же другие два способа? - person ars265; 14.05.2012
comment
@ ars265 В порядке от простого к сложному в настройке: есть file:// (который действительно не должен учитываться, поскольку за ним нет сервера), есть svn://, есть http:// и https:// и есть svn+ssh://. - person David W.; 14.05.2012

Да, я добавляю еще один ответ...

Возможно, вы захотите попробовать сторонний сервер, например Assembla, вместо попробуй это на своем Mac. Это даст всем доступ, не превращая вашу личную машину в сервер, который должен работать 24/7/365.

person David W.    schedule 14.05.2012
comment
Я рассматривал это как альтернативу, но мы действительно надеялись запустить наш собственный сервер и запустить svn, хотя у меня есть сомнения, должен ли это быть тот же сервер, на котором мы проводим все тесты разработки. - person ars265; 14.05.2012