SVN: хранилище заблокировано и команда очистки SVN не выполнена - PullRequest
4 голосов
/ 20 мая 2011

Я использую putty connect для моего Linux-сервера и извлекаю данные с SVN-сервера, я устанавливаю процесс проверки в фоновом режиме. Когда я выходил из оболочки замазки, проверка все еще работала.

В следующий раз, когда я войду в систему и продолжу оформлять заказ в том же каталоге, появится следующее сообщение:

svn: Working copy 'scon_project' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

Но когда я запускаю svn cleanup, все равно сталкиваюсь с такой проблемой:

svn: In directory 'var/data'
svn: Error processing command 'modify-wcprop' in 'var/data'
svn: 'var/data/logo.jpg' is not under version

Но в хранилище действительно существует файл var / data / logo.jpg.

В чем дело, и как я могу это решить? Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

Если вы просто выйдите из Putty, ваш заказ не будет продолжаться в фоновом режиме; Скорее всего, он будет зависать там, где он был в то время, а все файлы, над которыми он работал, остаются заблокированными. Это может привести к непредсказуемому поведению, которое вы видели на «чистой».

Вы можете обойти это, используя утилиту GNU Screen , которая позволяет вашему сеансу оставаться в живых при закрытии Putty и, как правило, включается в менеджеры пакетов большинства дистрибутивов Linux.

С помощью Screen можно многое сделать, а справочные страницы огромны, но для этого вам нужно всего лишь сделать следующее:

screen

Теперь вы находитесь в новом терминале и можете делать то, что вам нужно, и закрыть Putty, если хотите; ваши программы будут работать.

После входа снова выполните:

screen -x

И вы снова будете подключены к своей старой сессии.

Чтобы завершить сеанс, нажмите ctrl + d , как если бы вы завершили любой терминальный сеанс.

0 голосов
/ 26 июня 2012

Почему вы используете удаленное подключение (через Putty) к вашему серверу, где хранятся ваш репозиторий и извлечение? Разве вы не можете использовать какой-либо SVN-клиент (например, TortoiseSVN для Windows) на своем ЛОКАЛЬНОМ компьютере и выполнять все операции с вашим репозиторием здесь? Намного легче решить некоторые общие проблемы.

Блокировка SVN в каком-либо хранилище (или локальной рабочей копии) является распространенной проблемой, и в большинстве случаев возникает ошибка. Есть много способов разблокировать заблокированный репозиторий. Попробуйте найти их в Google.

В зависимости от того, насколько глубоко ваш репозиторий заблокирован, большинство из них могут выйти из строя. В этой ситуации я всегда использую так называемый режим "грубой силы". I.e.:

  1. Извлечь текущую версию репозитория в новую папку.

  2. Экспорт содержимого этой папки в другую (получить все файлы без метаданных SVN).

  3. Удалите все файлы в первой папке (той, в которой вы извлекли хранилище).

  4. Скопируйте (или переместите) все файлы из второй папки (в которую вы экспортировали) в первую.

  5. Передать изменения.

Это общее решение для многих проблем с хранилищем, включая проблемы с заблокированным хранилищем.

Я настоятельно рекомендую вам использовать локальный SVN-клиент на локальном компьютере. Не делайте ничего удаленно на сервере, где вы на самом деле храните свой SVN-репозиторий, если только вам это действительно не нужно и вы не уверены, что другого пути нет.

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