Это может быть немного неудобно, но я постараюсь объяснить, чего я пытаюсь достичь и с какими проблемами я столкнулся. Прежде всего: что это?
В настоящее время я пытаюсь создать распределенную рабочую среду для разработки веб-страницы. Мой план состоял в том, чтобы настроить репозиторий SVN для управления версиями, живой сервер, на котором размещается реальная живая страница, и сервер разработки, на котором я могу работать на странице. Чтобы упростить задачу, я намеревался не иметь локальной копии проекта на моем диске, а работать непосредственно с файлами, которые размещены на сервере разработки. Для этого я устанавливаю каталог WebDAV в devserver.com/workspace, который фактически сопоставляется с файлами, обслуживаемыми на devserver.com/. Так что я мог подключиться к devserver.com/workspace, что-то изменить и просмотреть результаты в реальном времени на devserver.com/. Пока это работало отлично. Следующим шагом было создание репозитория SVN, который позаботился бы о моем управлении версиями. Я намеревался иметь возможность регистрироваться в репозитории с моего сервера разработки и в любое время с помощью небольшого сценария оболочки развертывать любую ревизию из svn на активный сервер, проверяя копию ревизии в каталогах реального сервера. Вторая часть, проверка на живом сервере, также работала отлично. Однако в первой части возникли проблемы:
Моя рабочая станция - это машина с Windows 7. Я подключился к общему ресурсу WebDAV, используя встроенную в Windows поддержку WebDAV, которая работала достаточно хорошо. Я могу создавать, перемещать, удалять, редактировать любые файлы на моем общем ресурсе WebDAV с моей машины Windows. Следующим шагом было извлечение рабочей копии из SVN (фактически размещенной на devserver.com/subversion/) в общий ресурс WebDAV. С первой попытки я использовал подрывной плагин Eclipse. Фактическая проверка работала нормально, и я могу обновлять и фиксировать данные в репозитории, однако я не могу добавлять файлы в список игнорирования. Это всегда приводит к ошибке. Итак, я попробовал то же самое с полным свежим репозиторием с использованием TortoiseSVN - и снова он потерпел неудачу с теми же ошибками. Вот что он говорит при попытке добавить файлы в svnignore:
Some of selected resources were not added to ignore.
svn: Cannot rename file '\\devserver.com@SSL\DavWWWRoot\workspace\.svn\tmp\dir-props.66fd8936-2701-0010-bb76-472f0b56a5d1.tmp' to '\\devserver.com@SSL\DavWWWRoot\workspace\.svn\tmp\dir-props'
Вот что мне сообщает apache2, когда я пытаюсь добавить файл в svnignore:
[Sun Mar 07 03:54:19 2010] [error] [client xxx.xxx.xxx.xxx] Negotiation: discovered file(s) matching request: /var/www/devserver.com/.svn/tmp/dir-props (None could be negotiated).
[Sun Mar 07 03:54:31 2010] [error] [client xxx.xxx.xxx.xxx] (20)Not a directory: The URL contains extraneous path components. The resource could not be identified. [400, #0]
Фактически оба сообщения повторяются несколько раз. Первый происходит первым и повторяется примерно 5 раз, а второй наступает позже и повторяется, вероятно, более 20 раз. Если я создаю обычный файл, удаляю, переименовываю или изменяю его, ни одно из этих сообщений не появляется в моем error.log
Теперь, когда я писал этот вопрос, я смог добавить файлы в svnignore с помощью TortoiseSVN. Однако после этого Eclipse больше не позволял мне совершать коммит. Ошибка, которая появлялась при добавлении файлов в svnignore, теперь также появляется при фиксации.
Во время поиска в Интернете я обнаружил, что у некоторых людей появлялось такое же сообщение, потому что у них были файлы, различающиеся только именами в верхнем и нижнем регистре. Я проверил свой репозиторий и не нашел таких файлов. Я также где-то читал о людях, у которых проблемы с WebDAV и блокировкой файлов, потому что возможности блокировки файлов WebDAV кажутся очень ограниченными. На каком-то этапе у меня возникла ошибка, сообщающая, что мой репозиторий заблокирован, и поэтому операции не могут быть завершены. Однако эта ошибка больше не появлялась, так как я установил полностью свежий репозиторий и рабочую копию.
Я был бы очень признателен за любую помощь в решении этой проблемы! Если есть еще вопросы, не стесняйтесь спрашивать. Я знаю, что это несколько необычная установка.
С уважением, Даниэль
Насколько мне известно, не существует общего webdav для сопоставлений, которые позволяют файловой системе достаточно хорошо использовать в качестве рабочей копии подрывной деятельности.
Subversion требует, чтобы файловая система полностью работала как локальная файловая система, иначе управление ее административной областью не будет работать.