Ошибка SVN с ошибкой "Ошибка авторизации"
Я новый пользователь с SVN, и я встречаю проблему с командой SVN commit.
Я использую TortoiseSVN 1.6.6 и Ubuntu Subversion с WMware в качестве сервера.
Я создал репозиторий на сервере SVN, и я могу легко проверить файлы из репозитория, но совершить.
Когда я делаю фиксацию, он всегда показывает проблему.
Command: Commit
Error: Commit failed (details follow):
Error: Authorization failed
Finished!:
Эта проблема отображается только на локальном клиенте с репозиторием SVN-сервера на виртуальной машине. Я попытался создать репозиторий на локальной машине с TortoiseSVN, и это не проблема в Commit. Я также попробовал рабочую копию на серверной машине, это тоже не проблема в Commit.
Кто-нибудь сталкивался с этой проблемой? Это не проблема с Checkout с сервера VM SVN, но это показывает проблемы с локальным клиентом, передающим сервер VM.
Если что-то нужно настроить, я пропустил это сделать?
Ответы
Ответ 1
Это авторизация не удалась. Это означает, что на первом этапе аутентификация прошла успешно.
Итак: имя пользователя/пароль верен и был принят вашим сервером. Но тогда этому пользователю не разрешалось обращаться к пути/ресурсу.
проверьте свой файл авторизации на основе пути (conf/authz) и убедитесь, что у пользователя есть права.
Ответ 2
Для меня это произошло из-за миграции сервера.
В svnserve.conf я забыл раскомментировать:
auth-access = write
password-db = passwd
Ответ 3
Если сервер использует svnserve
для обслуживания репозитория (это означает, что вы используете URL svn://
), вы должны проверить файл conf/svnserve.conf
в репозитории. Конфигурация по умолчанию позволяет анонимное чтение, но только аутентифицированные обращения к записи IIRC.
Ответ 4
У меня была такая же проблема с RapidSVN
(или при использовании svn commit
из CLI). Выяснилось, что я просматривал репо с помощью анонимного доступа к Subversion (ссылка svn://
):
svn checkout svn://svn.r-forge.r-project.org/svnroot/rsitesearch/
Но при использовании этой ссылки для репо вы не можете совершать изменения. Таким образом, решение заключалось в использовании ссылки svn+ssh://
, обеспечивающей доступ к Subversion для разработчиков через SSH:
svn checkout svn+ssh://[email protected]/svnroot/rsitesearch/
В других службах SVN правильная ссылка для фиксации может быть https://
. На самом деле у меня есть лучший опыт работы с выпиской https://
, поэтому сначала попробуйте это.
Теперь svn commit
должен работать как ожидалось.
(Это то же самое решение, что и предложенное Wug в комментарии к OP.)
Ответ 5
Мой опыт был похож на bluebrother
Я создал новый репозиторий правильно, но не правильно настроил пользователей. Это позволило мне Checkout, но не Commit
Отредактируйте repoLocation/conf/svnserve.conf и раскомментируйте строку
password-db = passwd
Отредактируйте repoLocation/conf/passwd и добавьте имя пользователя и пароль в passwd, например
tim = пароль
Ответ 6
Прежде всего, можете ли вы просмотреть репозиторий из Tortoise? Если вы можете, то учетная запись пользователя, к которой вы обращаетесь в репозиторий, не имеет прав на запись (= фиксация).
Если вы не можете ни просматривать, ни комментировать: может быть, что Tortoise хранит неверные данные аутентификации на вашем клиенте. Я думаю, что в этом случае он должен снова запросить учетные данные, но, возможно, это не так. Попробуйте следующее:
-
Откройте меню "Пуск", перейдите в группу TortoiseSVN
-
Нажмите "Настройки TortoiseSVN"
-
Перейдите к "Сохраненные данные"
-
Нажмите "Очистить" в "Данные аутентификации"
После этого Tortoise забудет все сохраненные пароли и попросит вас в следующий раз при попытке получить доступ к виртуальной машине.
Ответ 7
Если вы используете svnserve
для обеспечения доступа SVN (т.е. ваш URL-адрес репозитория выглядит как svn://server/repo
), убедитесь, что ваш сервер разрешает доступ на запись. В некоторых установках сервер запускается с доступом только для чтения по умолчанию:
# The -R option enforces read-only access, i.e. write operations to the
# repository (such as commits) will not be allowed.
SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos"
Ответ 8
Проверьте свои файлы, используя протокол http вместо протокола svn. У меня была та же проблема, что и при проверке файлов с использованием протокола svn://. Позже я изменил протокол на http://, и все начало работать нормально.
Ответ 9
Кроме того, дважды проверьте, что фактический репозиторий на сервере имеет правильные права доступа к файлу, которые должны быть записаны серверным процессом (либо svnserve, либо Apache). Это, вероятно, хорошо, так как вы могли создать репозиторий другими способами, но стоит проверить на всякий случай.
Ответ 10
примечание: я использую sasl, и я нашел сложный способ, который учитывает регистр, и ожидает имена пользователей в нижнем регистре; то есть "username123" не будет совпадать с "USERNAME123" в вашем файле authz, хотя они написаны одинаково, поэтому, возможно, проверьте, чтобы убедиться, что ваши имена пользователей строчные (в вашем файле authz)