Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
В Вашем папка svn\repos\YourRepo\conf Вы найдете два файла, authz и passwd. Это два, которые необходимо скорректировать.
В файл passwd необходимо добавить некоторые имена пользователей и пароли. Я предполагаю, что Вы уже сделали это, так как у Вас есть люди, использующие его:
[users]
User1=password1
User2=password2
Тогда Вы хотите присвоить полномочия соответственно с файл authz :
Создают концептуальные группы, которые Вы хотите и добавляете людей к нему:
[groups]
allaccess = user1
someaccess = user2
Тогда выбирают, какой доступ они имеют и из полномочий и из уровня проекта.
Так позволяют нам предоставить наш "весь доступ" парни весь доступ от корня:
[/]
@allaccess = rw
, Но только предоставляют наш "некоторый доступ" доступ только для чтения парней к некоторому более низкому проекту уровня:
[/someproject]
@someaccess = r
Вы также найдете некоторую простую документацию в authz и passwd файлы.
@Stephen Bailey
Для завершения ответа можно также делегировать пользовательские права менеджеру проектов через файл простого текста в репозитории.
, Чтобы сделать это, Вы устанавливаете свою базу данных SVN со значением по умолчанию authz
файл, содержащий следующее.
###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....
[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =
[/admin/acl_descriptions.txt]
@projadmins = rw
Это значение по умолчанию authz
файл разрешает администраторов SVN изменять простой файл видимого текста в Вашем репозитории SVN, названном '/admin/acl_descriptions.txt' , в котором администраторы SVN или менеджеры проектов изменят и зарегистрируют пользователей.
Тогда Вы устанавливаете рычаг перед фиксацией, который обнаружит, если пересмотр будет состоять из того файла (и только того файла).
, Если это, этот рычаг, сценарии проверят содержание Вашего файла простого текста и проверят, совместима ли каждая строка с правильным синтаксисом SVN.
Тогда рычаг постфиксации обновит \conf\authz
файл с конкатенация из:
authz
файл, представленный выше /admin/acl_descriptions.txt
простого текста, первое повторение сделано администратором SVN, он добавляет:
[groups]
projadmins = zzzz
Он фиксирует свою модификацию, и это обновляет authz
файл.
Тогда менеджер проектов 'zzzz' может добавить, удалить или объявить любую группу пользователей и любых пользователей, которых он хочет. Он фиксирует файл и authz
, файл обновляется.
Тот путь, администратор SVN не должен следовать ни за кем и всеми пользователями для всех репозиториев SVN .
Можно использовать svn+ssh: и затем это основано на управлении доступом в репозиторий в данном местоположении.
Это - то, как я размещаю репозиторий группы проекта в своем Uni, где я не могу установить ничто больше. Просто наличие каталога, которым группа владеет, и рабочий svn-администратор (или независимо от того, что это было) там означает, что я не должен был реализовывать конфигурацию.
Хотя я предположил бы, что подход Apache лучше, Подача SVN хорошо работает и довольно проста.
Принятие Вашего репозитория называют "my_repo", и это хранится в c:\svn_repos:
Создают файл, названный "passwd" в "C:\svn_repos\my_repo\conf". Этот файл должен быть похожим:
[Users]
username = password
john = johns_password
steve = steves_password
В c:\svn_repos\my_repo\conf\svnserve.conf устанавливает
[general]
password-db = passwd
auth-access=read
auth-access=write
, Это вынудит пользователей войти в систему в чтение или записать в этот репозиторий.
Выполняют эти шаги для каждого репозитория, только включая соответствующих пользователей в passwd
файл для каждого репозитория.
Лучший способ состоит в том, чтобы настроить Apache и установить доступ через него. Проверьте svn книга для справки. Если Вы не хотите использовать Apache, можно также сделать минималистическое управление доступом с помощью svnserve.
Одна ловушка, которая меня поймала:
[repos:/path/to/dir/] # this won't work
но
[repos:/path/to/dir] # this is right
Вам не нужно включать в конец косую черту в каталоге, иначе вы увидите 403 для запроса OPTIONS.