Раньше я использовал SVN 1.4 на OS X Leopard, и все было хорошо. Пару недель назад я установил свежую копию OS X 10.6. Версия SVN, поставляемая со Snow Leopard, - 1.6.5. Я пошел дальше и построил свою собственную копию с 1.6.6. Я использую встроенный сервер Apache и просто размещаю репозитории локально.
Казалось, что все работает нормально, пока я не попытался что-то зафиксировать. Каждый раз, когда я пытаюсь зафиксировать изменение, я получаю следующее сообщение:
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/svn2': 409 Conflict (http://localhost)
Это происходит с моими старыми репозиториями, поэтому я создал пару новых. Та же сделка Я также попытался использовать версию 1.6.5, которая поставляется с системой ... то же самое. Наконец, я попытался перейти на последнюю стабильную версию SVN (1.6.9) и все еще получил ту же проблему.
Ошибка Apache регистрирует следующее для каждой неудачной фиксации:
[Mon Mar 29 19:53:10 2010] [error] [client ::1] Could not MERGE resource "/svn/svn2/!svn/act/d399326f-c20f-424f-bb68-3bb40503b5b1" into "/svn/svn2". [409, #0]
[Mon Mar 29 19:53:10 2010] [error] [client ::1] An error occurred while committing the transaction. [409, #2]
[Mon Mar 29 19:53:10 2010] [error] [client ::1] Can't open directory '/usr/local/svn/svn2/db/transactions/5-6.txn/\xeb\xa9\x0f\x1f': No such file or directory [409, #2]
[Mon Mar 29 19:53:11 2010] [error] [client ::1] Could not DELETE /svn/svn2/!svn/act/d399326f-c20f-424f-bb68-3bb40503b5b1. [500, #0]
[Mon Mar 29 19:53:11 2010] [error] [client ::1] could not open transaction. [500, #2]
[Mon Mar 29 19:53:11 2010] [error] [client ::1] Can't open file '/usr/local/svn/svn2/db/transactions/5-6.txn/props': No such file or directory [500, #2]
А из журнала доступа:
::1 - - [30/Mar/2010:13:02:20 -0400] "OPTIONS /svn/svn2 HTTP/1.1" 401 401
::1 - user [30/Mar/2010:13:02:20 -0400] "OPTIONS /svn/svn2 HTTP/1.1" 200 188
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2 HTTP/1.1" 207 647
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2 HTTP/1.1" 207 647
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2/!svn/vcc/default HTTP/1.1" 207 398
::1 - user [30/Mar/2010:13:02:20 -0400] "PROPFIND /svn/svn2/!svn/bln/6 HTTP/1.1" 207 449
::1 - user [30/Mar/2010:13:02:20 -0400] "REPORT /svn/svn2/!svn/vcc/default HTTP/1.1" 200 1172
Любопытно, что коммит действительно фиксирует изменения, но рабочая копия этого не видит, и все становится чокнутым.
Я пытался найти в Google все варианты для этой проблемы, но результаты поиска практически бесполезны. Я не использую TortoiseSVN или что-то особенное, и коммиты не работают в новом репозитории, поэтому я знаю, что это не проблема с моими старыми репозиториями.
Любая помощь будет принята с благодарностью.
Обновление
Я попытался добавить автоверсионность в мой файл svn.conf. Вот что говорят мои файлы:
LoadModule dav_svn_module /usr/libexec/apache2/mod_dav_svn.so
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
SVNAutoversioning on
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/etc/svn-auth-file
# only authenticated users may access the repository
Require valid-user
</Location>
Обновление (решение)
Я просто хотел обновить это фактическим решением на тот случай, если у кого-то возникнет та же проблема с совершенно бесполезными сообщениями об ошибках. Проблема была с частями apr и apr-util (как было предложено scherand). Я создавал копию обоих, используя пакет зависимостей subversion. OS X 10.6 также имеет свою собственную версию. Обе версии были 1.3.8. Очевидно, что мне нужно было использовать версии, которые использовались при установке Apache по умолчанию.
Итак, я удалил папки apr и apr-util из моей сборки subversion, чтобы убедиться, что я не собираю свою собственную копию этих файлов снова. Я снова собрал svn из исходного кода, на этот раз используя следующую конфигурацию:
./configure --with-apr=/usr/bin/ --with-apr-util=/usr/bin/ --with-ssl
После сборки я перезапустил apache и создал новый репозиторий SVN. Я смог проверить это, внести изменения и зафиксировать без каких-либо проблем. Затем я попробовал свои старые репозитории, и они тоже сработали.
Спасибо всем за помощь!