Настройка SCM с использованием Xcode и SVN (Subversion) - PullRequest
0 голосов
/ 16 января 2010

Я пытаюсь настроить Xcode SCM с использованием Subversion (SVN) на сетевом диске (смонтирован). Я смог настроить SVN-репозиторий на своей машине локально, и все работало без проблем. Справочная статья: Контроль версий - ваш друг Джефф Ламарш

Моя проблема в том, что я не могу настроить SVN на сетевом диске (смонтирован).

cd [mounted_drive]/Users/Shared 
mkdir subversion 
cd subversion 
mkdir HelloWorld 
svnadmin create HelloWorld
chmod -R 777 HelloWorld

Приведенные выше команды работают нормально, и главное хранилище Subversion успешно создано. Проблема в том, что он не позволяет мне создавать подпапки (ствол, ветвь и тег) в основном репозитории SVN.

svn mkdir
file:///[mounted_drive]/Users/Shared/Subversion/HelloWorld/trunk
file:///[mounted_drive]/Users/Shared/Subversion/HelloWorld/branch
file:///[mounted_drive]/Users/Shared/Subversion/HelloWorld/tag

Когда я пытаюсь запустить команду svn mkdir, указанную выше, я получаю следующую ошибку svn:

"svn: невозможно получить эксклюзивную блокировку файла '[mount_drive] / [subversion_repository_directory] / db / write-lock': операция не поддерживается "

Если я управляю удаленным компьютером и изначально запускаю указанную выше команду, она работает, и создаются каталоги транка, ветвей и тегов.

После установки SCM XCode для удаленного репозитория, если я пытаюсь «импортировать» код в этот репозиторий (удаленно), XCode возвращает следующую ошибку:

"svn: невозможно получить эксклюзивную блокировку файла '[mount_drive] / [subversion_repository_directory] /db/transactions/3-1.txvn/rev-lock': операция не поддерживается "

Суть всей этой истории: я сталкиваюсь с множеством проблем при настройке SVN на сетевом диске. Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

3 голосов
/ 16 января 2010

Go читать книгу . Я буду ждать. Серьезно.

Не не настроить общий репозиторий, поместив его на сетевой диск и затем поговорив с ним через file:///. file:/// доступ к репозиториям предназначен только для локального диска из-за (среди прочего) семантики блокировки сетевых файловых систем.

Вместо этого выберите компьютер, на котором вы будете хранить свои репозитории. Давайте назовем это Hezikiah Run svnserve в этой системе, чтобы сделать репозитории доступными в сети. Войдите в свой репозиторий как svn: //hezikia/REPO_NAME.

Книга очень помогает там.

1 голос
/ 09 марта 2011

Отлично, я скомпилировал свою собственную Subversion, используя подсказку Yafiyogi - замечательный человек, он работает, больше никаких проблем с файлом блокировки! Я могу получить доступ к хранилищу Subversion на диске TimeCapsule через AFP, соответственно. WLAN удаленно, используя версии клиента SVN. Мое признание:

  • Mac OS X 10.6.6 (10J567) (Darwin 10.6.0)
  • apr-1.4.2 (с использованием простой конфигурации / make / make install)
  • apr-util-1.3.10 (с использованием ./configure --with-apr=/usr/local/apr/make/make install)
  • subversion-1.6.16 (используя подсказку Яфийоги выше)
1 голос
/ 24 октября 2010

Можно создать версию Subversion, у которой нет этой проблемы. Кажется, что проблема в библиотеках apr и apr-util (см. Subversion, Mac OS X и SMB ).

Обходной путь, который я использовал, состоит в том, чтобы скомпилировать subversion, используя библиотеки apr, apr-util & apxs версий OS X.

Вот как это сделать:

  1. Получите SVN-архив и распакуйте его в подходящее место
  2. ./configure --prefix=/opt/subversion/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --without-berkeley-db --with-apxs=/usr/sbin/apxs

    • - префикс = / opt / subversion /: поместить subversion в /opt/subversion, что удобно, если вы используете svnX.
    • - with-apr = / usr / local / apr: использовать библиотеку apr для OS X.
    • - with-apr-util = / usr / local / apr: использовать библиотеку apr-util OS X.
    • - with-apxs = / usr / sbin / apxs: использовать библиотеку apxs в OS X.
    • - без-berkeley-db: это не является частью исправления, но я никогда не использовал ничего, кроме подрывной FSFS, поэтому я не собираюсь с помощью berkeley-db.
  3. sudo make install

Я успешно сделал это на OS X 10.5 с Subversion 1.6.13.

svnX тоже доволен этим.

1 голос
/ 16 января 2010

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

Что вы действительно хотите сделать, так это настроить сервер Subversion на сетевом сервере и проверить локальную копию хранилища при работе над проектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...