суббота, 7 ноября 2009 г.

Проблемы с SVN

Столкнулся недавно с одной проблемой в моём svn репозитарии. Точнее  проблема была давно , а я обратил на неё внимание вот только что. Пытался просмотреть с помощью черепахи лог изменений в репозитарии, а он выдавал список ревизий, но без дат и описаний. Причем проблема возникала только на приватном репозитарии, а на публичном, там где colorer_se - все нормально.

В итоге появилась такая вот запись номером 3516 в баг-трекере Subversion. Если на русском, то суть вот в чем.
Имеем svn сервер с sasl. В нем два различных репозитария, один публичный, другой закрытый. Отличаются они записями в файле authz. Для публичного
[/]
*= r
master=rw
Для приватного  
[/]
*=
master=rw
Т.е. если ты не прошел аутентификацию , то тебе ничего нельзя.
Пробуем посмотреть лог обоих репозитариев. Для публичного он будет такой (это вывод в консоль, так что все нормально) 
r10 | sonar | 2009-03-16 09:21:53 +0300 (Mon, 16 Mar 2009) | 1 line

?\209?\131?\208?​180?\208?\176?\2​08?\187?\208?\181​?\208?\189?\209?​139 ?\208?
\191?\209?​128?\208?\190?\2​08?\181?\208?\186​?\209?\130?\209?​139 ?\208?\180?
\208?\187?\209?\143 ?\208?\188?\208?​184?\208?\179?\2​09?\128?\208?\176​?\209?
\134?\208?​184?\208?\184 ?\209?\129 ?\208?\190?\209?​135?\208?\181?\2​08?\189?
\209?\140​ ?\209?\129?\209?​130?\208?\176?\2​09?\128?\208?\190​?\208?\185 ?\208?
\178?\208?​181?\209?\128?\2​09?\129?\208?\184​?\208?\184 ?\208?\189?\208?\176 ?
\208?\189?\208?​190?\208?\178?\2​09?\131?\209?\142​.
--------------------​--------------------​--------------------​------------
r9 | sonar | 2009-03-16 09:06:05 +0300 (Mon, 16 Mar 2009) | 1 line

?\208?\161?\208?​190?\209?\133?\2​09?\128?\208?\176​?\208?\189?\208?​181?\208?
\189?\2​08?\184?\208?\181​ ?\208?\178?\208?​181?\209?\128?\2​09?\129?\208?\184​?
\208?\184 0.9
--------------------​--------------------​--------------------​------------
Тут мы видим и дату , и пользователя, и сообщение ревизии. Для приватного вывод будет следующим 
--------------------​--------------------​--------------------​------------
r10 | (no author) | (no date) | 1 line

--------------------​--------------------​--------------------​------------
r9 | (no author) | (no date) | 1 line

--------------------​--------------------​--------------------​------------
r8 | (no author) | (no date) | 1 line
Тут мы видим "ничего".

Может возникнуть мнение, что ошибка в самом хранилище. Но я объясняю на двух разных для наглядности. Тоже самое будет, если для публичного отредактировать файл authz  как у приватного. Следующий возникающий вопрос - а ты то под тем логином/паролем заходишь? Специально проверил такой командой 
svn log svn://address --username master --password pass
Результат прежний.

В итоге напрашивается такое объяснение. Команда log  не использует логин/пароль для чтения данных, а ломится на сервер под anonymous.

Будем надеяться, что исправят эту ошибку, либо укажут что я делаю не правильно. Жаль только, что аж с 27 октября к багу ни одного комментария.

2 комментария:

  1. Добрый день.

    Сегодня столкнулся с такой же проблемой. Часов 5 подпрыгивал - не решил бы - голову бы оторвали - у меня миграция была, точно на нее бы списали.

    В общем, проблема не в самой СВН, так что наверное надо закрыть репорт в трекере.

    Проблема решается следующим образом - надо в svnserve.conf опцию anon-access установить в = deny

    Объясню почему это так работает - клиент подключаясь вначале проверяет доступ от анонимного пользователя. И если он его получил, то дальше не применяет аутентификацию. Соответственно, он не может прочитать лог, хотя подключиться к репозиторию может.

    Буду оч признателен, если опишете это в закрытии бага.

    Удачи. :)

    ОтветитьУдалить
  2. Привет. спасибо за ответ. проверить врятли получится, т.к. уже не пользуюсь svn. хотя надо будет воспроизвести ситуацию снова и если что закрыть баг репорт

    ОтветитьУдалить