Я использовал 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 (как предполагалось). Я создавал копию обоих с использованием пакета зависимостей 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-репо. Я смог проверить это, внести изменения и совершить без каких-либо проблем. Затем я попробовал свои старые репозитории, и они тоже работали.
Спасибо всем за помощь!