Очистить инструкцию о путях SVN
Я работаю некоторое время, сейчас пытаюсь лучше понять SVN. Я работаю с сервером Mac OSX Lion. Я смог настроить и запустить SVN на компьютере и сделать так, чтобы я мог проверять и получать документы. Однако я хочу сделать его доступным для дополнительных услуг через Интернет, поэтому, хотя многие из моих коллег и я путешествуем, мы все равно можем работать вместе. Я перенаправил порт 3690 (я считаю, что это порт SVN), и порт для SSH был настроен ранее.
Я установил SVN репозиторий на /Library/Subversion/Repository/
и у меня есть Версии и Терминал на сервере для тестирования. Я могу подключиться с помощью file://
параметр пути, но я не могу подключиться с помощью svn+ssh://username@localhost/MyProject
,
Я точно знаю, что могу подключиться через ssh, и ошибка "Не найдено хранилище". Я предполагаю, что мне нужен другой путь, но все статьи Mac OS, которые я прочитал, только рассказывают, как настроить его на хосте, а не для использования по локальной сети или извне.
Любые идеи или мысли с благодарностью. В качестве ссылки на шаги, которые я предпринял ниже, приведены некоторые ссылки на статьи, из которых я работал.
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, используя панель настроек " Пользователи и группы". Нажмите на +, как при создании нового пользователя, но выберите Group из выпадающего списка. Поместите всех, кто собирается войти в эту группу.
- Когда вы создаете хранилище Subversion
- Убедитесь, что все файлы и каталоги дерева каталогов хранилища принадлежат группе Subversion через
chgrp
команда. - Использовать
chmod
команда, чтобы убедиться, что все дерево каталогов доступно для чтения / записи этой группой Subversion.
- Убедитесь, что все файлы и каталоги дерева каталогов хранилища принадлежат группе Subversion через
- Вы должны установить каждого пользователя
umask
в002
или же0002
вместо по умолчанию022
или же0022
, Таким образом, когда пользователь создает новый каталог или файл в хранилище, он может быть прочитан и записан любым другим пользователем в группе. В противном случае один пользователь создаст изменение, но другие пользователи не смогут вносить изменения.
Посмотрите на эти ссылки из онлайнового руководства Subversion:
Да, я добавляю еще один ответ...
Возможно, вы захотите попробовать сторонний сервер, такой как Assembla, вместо того, чтобы попробовать его на своем Mac. Это предоставит всем доступ, не делая вашу персональную машину сервером, который должен быть включен 24/7/365.