Ошибка SVN с ошибкой «Ошибка авторизации»

20

Я новый пользователь с 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.

Если что-то нужно настроить, я пропустил это сделать?     

задан user263687 01.02.2010 в 17:45
источник
  • Этот вопрос старый, но я добавлю свои 2 цента, потому что у меня недавно была эта проблема. Моя проблема была в том, как я проверил репозиторий. Я случайно использовал svn: //example.com/Repo вместо svn + ssh: //[email protected]/Repo в качестве источника, и анонимная проверка работала нормально, но я не смог зафиксировать. Если бы я удостоверился, что проверил его так же, как и в других системах, у меня не было бы проблем, но я этого не сделал. Возможно, стоит проверить, если это ваша проблема: сравните источник репо между рабочим и нерабочим и посмотрите, есть ли что-то явно нехорошее. –  Wug 26.03.2013 в 22:04

9 ответов

16

Это ошибка авторизации. Это означает, что на первом этапе аутентификация прошла успешно.

Итак: имя пользователя / пароль верен и был принят вашим сервером. Но тогда этому пользователю не разрешалось обращаться к пути / ресурсу.

проверьте свой файл авторизации на основе пути (conf / authz) и убедитесь, что у пользователя есть права.

    
ответ дан Stefan 01.02.2010 в 20:46
источник
10

Для меня это произошло из-за миграции сервера. В svnserve.conf я забыл раскомментировать:

auth-access = write
password-db = passwd
    
ответ дан Deyan Vitanov 13.09.2014 в 10:46
источник
  • это самая распространенная ошибка при использовании новых репозиториев. –  Agguro 27.04.2015 в 10:56
6

Если сервер использует svnserve для обслуживания репозитория (это означает, что вы используете URL svn:// ), вы должны проверить файл conf/svnserve.conf в репозитории. Конфигурация по умолчанию позволяет анонимное чтение, но только аутентифицированные обращения к записи IIRC.

    
ответ дан bluebrother 01.02.2010 в 17:57
источник
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:// checkout, поэтому сначала попробуйте это.

Теперь svn commit должно работать как ожидалось.

(Это то же самое решение, что и предложенное Wug в комментарии к OP.)

    
ответ дан landroni 23.12.2013 в 20:11
источник
  • И если вы просто возитесь с вашей локальной настройкой и хотите настроить что-то, что работает, но потенциально опасно открывает доступ к записи, вы можете изменить строку в svnserve.conf из # anon-access = read to anon -access = написать (отметить anon-access, а не auth-access) –  Jon Stafford 11.10.2017 в 17:03
3

Прежде всего, можете ли вы просмотреть репозиторий из Tortoise? Если вы можете, то учетная запись пользователя, к которой вы обращаетесь в репозиторий, не имеет прав на запись (= фиксация).

Если вы не можете ни просматривать, ни комментировать: может быть, что Tortoise хранит неверные данные аутентификации на вашем клиенте. Я думаю, что должен снова запрашивать учетные данные в этом случае, но, возможно, это не так. Попробуйте следующее:

  1. Откройте меню «Пуск», перейдите в группу TortoiseSVN

  2. Нажмите «Настройки TortoiseSVN»

  3. Перейдите к «Сохраненные данные»

  4. Нажмите «Очистить» в «Данные аутентификации»

После этого Tortoise забудет все сохраненные пароли и попросит вас в следующий раз при попытке получить доступ к виртуальной машине.

    
ответ дан Pekka 웃 01.02.2010 в 17:51
источник
  • У меня подобная проблема. У меня нет проблем для просмотра SVN, проверки из репозитория SVN. Это происходит только на моем ноутбуке. Однако, если я удаленный рабочий стол на других машинах, я могу проверить код, просмотреть, а также Commit. Поэтому всякий раз, когда мне приходится проверять какой-либо код, мне придется скопировать код на удаленную машину и проверить его. Я использую Windows 8 - 64-разрядную ОС. SVN Информация о версии: TortoiseSVN 1.8.2, Build 24708 - 64 бит, 2013/08/27 19:20:39 Subversion 1.8.3, -release apr 1.4.8 apr-util 1.5.2 serf 1.3.1 OpenSSL 1.0.1e 11 февраля 2013 г. zlib 1.2.8 –  MoG 31.12.2013 в 19:57
  • stackoverflow.com/questions/19328149/... –  MoG 02.01.2014 в 21:44
3

Мой опыт был похож на bluebrother Я создал новый репозиторий правильно, но не правильно настроил пользователей. Это позволило мне Checkout, но не Commit

Изменить repoLocation /conf/svnserve.conf и раскомментировать строку

  

password-db = passwd

Измените repoLocation / conf / passwd и добавьте имя пользователя и пароль в passwd, например

  

tim = пароль

    
ответ дан TimSmith-Aardwolf 27.06.2014 в 13:58
источник
  • Просто примечание: пар имя и пароль должны быть установлены на 'repoLocation / conf / passwd', а не на 'svnserve.conf', так как в приведенной выше строке вы сообщаете службе искать этот файл. –  Endrik 14.07.2014 в 14:24
  • Спасибо, исправлена –  TimSmith-Aardwolf 18.07.2014 в 16:11
3

Если вы используете 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"
    
ответ дан user3151902 25.08.2014 в 14:22
источник
  • О, глупо меня! Добавил -R сам ... –  sschrass 17.12.2014 в 09:34
  • Вы спасли меня пару часов! Благодаря! –  kissgyorgy 27.05.2015 в 16:38
  • в каком файле это? –  Louis 15.02.2017 в 13:47
  • В файле svnserve.conf. См. Http://serverfault.com/a/110663/211562 для получения информации о том, где найти файл. –  user3151902 16.02.2017 в 19:57
1

Проверьте свои файлы, используя протокол http вместо протокола svn. У меня была та же проблема, что и при проверке файлов с использованием протокола svn: //. Позже я изменил протокол на http: //, и все начало работать нормально.

    
ответ дан MoG 14.01.2014 в 22:43
источник
0

Кроме того, дважды проверьте, что фактический репозиторий на сервере имеет правильные права доступа к файлу, которые должны быть записаны серверным процессом (либо svnserve, либо Apache). Это, вероятно, хорошо, так как вы могли создать репозиторий другими способами, но стоит проверить на всякий случай.

    
ответ дан Mark 01.02.2010 в 20:56
источник