Подтвердить что ты не робот

Не удалось передать Subversion

У меня есть клиент, которому пришлось перестроить свой сервер автоматической сборки. Он проверил папку своего проекта с моего сервера subversion, но теперь больше не может совершить - он получает эту ошибку:

Error: Commit failed (details follow):  
Error: Cannot write to the prototype revision file of transaction
'551-1' because a   
Error: previous representation is currently being written by another
process  
Finished!:   

Я искал Google, но, хотя часто сообщалось об этой ошибке, нет четкого объяснения - есть ли у кого-нибудь из StackOverflow решение?

ОБНОВЛЕНИЕ: Никто не фиксирует этот репозиторий, так что это не была транзакция (по крайней мере, не у другого пользователя). В итоге мы обнаружили, что разрешения установлены неправильно. Не то, чтобы вы знали об этом из этого сообщения, но это устранило проблему.

4b9b3361

Ответ 1

Вы можете удалить эту ошибку без перезагрузки:

  • Определите (или создайте) каталог в корневом репозитории SVN, который не был частью отказавшего коммита.

  • Создайте новый файл в каталоге с шага 1.

  • Зафиксируйте новый файл (и каталог, если он создан на шаге 1). Поскольку файл является новым, он не конфликтует с предыдущей фиксацией и может обновлять ревизию # на сервере.

  • Зафиксировать исходные файлы/каталоги.

  • Удалите новый файл (и каталог, если он создан на шаге 1).

  • Зафиксируйте все дерево.

** Шаги 5 и 6 не требуются, но мне нравится сохранять мой репозиторий в порядке...

Я получаю эту ошибку много. b/c SVN часто оказывается в середине выполнения моих больших файлов, что, в свою очередь, заставляет последующие коммиты пытаться записать прерывание, которое было прервано.

Ответ 2

У меня была аналогичная проблема, кроме сообщения: "... предыдущее представление в настоящее время написано этим процессом".

svnadmin lstxns не показывал транзакций.

Перезапуск Apache решил проблему для меня.

Ответ 3

В вашем хранилище есть застрявшая транзакция. Вы можете использовать команду svnadmin для ее восстановления. Как и все другие утилиты svn, svnadmin принимает команду, за которой следуют параметры (обычно это только каталог репозитория). svnadmin должен запускаться на сервере с репозиторием.

Сделайте что-то вроде этого:

svnadmin lstxns /path/to/repository

чтобы получить список транзакций в процессе (вы должны увидеть свое нарушение 551-1). Затем вы можете решить, как лучше всего восстановить эту ошибку... svnadmin также имеет команду rmtxns, чтобы удалить оскорбительную транзакцию. Для получения дополнительной информации выполните следующие действия:

svnadmin help

или см. веб-сайт tigris: http://subversion.tigris.org/. Вы также можете получить более подробную помощь по конкретным командам, выполнив команду help с именем интересующей вас команды. Например:

svnadmin help lstxns

Очевидно, вам понадобится доступ оболочки к серверу репозитория и права на запись в репозиторий для использования svnadmin. Если вы являетесь форматом репозитория, это Berkely DB, вы должны приостановить демон svnserve (если вы его используете) и любой доступ к web_dav/web_svn, чтобы гарантировать, что вы не повредите базу данных при выдаче команд svnadmin.

Ответ 4

Для меня проблема была решена (как намечено в обновлении вопроса), изменив разрешения моей локальной папки (а не репозитория). В Windows Vista вы делаете это, щелкнув правой кнопкой мыши на папке, а в свойствах/безопасности вы измените разрешения.

Сообщение об ошибке не очень хорошее, и найти ответ было непросто, поэтому я надеюсь, что мой ответ поможет другим людям решить эту проблему, но, с другой стороны, просто решить проблему.

Ответ 5

При такой же проблеме перезапуск apache исправил проблему.

Ответ 6

В этой же проблеме возникла проблема после того, как я отменил фиксацию. После выполнения svnadm rmtxns с номером транзакции для удаления я получил сообщение. Я использую webdav с apache, поэтому я перезапустил apache, как было предложено (/sbin/service httpd restart). Работали.

Ответ 7

Я этого не видел, но, продолжая сообщение об ошибке, я предполагаю, что что-то застряло в написании файла. Я бы попробовал перезапустить сервер svn server/reboot server.

Ответ 8

"Невозможно записать в файл проверки прототипа транзакции" Перезапуск apache также исправил эту проблему для меня. Я отправляю сообщение, чтобы что-то полезное могло на самом деле сделать его вершиной google.

Удачи!

Ответ 9

Вы должны изменить разрешения каталога репозиториев

sudo chown -R www-data:www-data /home/pi/repos/
sudo chown -R www-data:www-data /home/pi/repos/myProject

Ответ 10

Ewan

Я столкнулся с той же проблемой с Visual SVN Server, установленным в Windows 2003, я изменил установку по умолчанию, чтобы поместить папку репозитория на отдельный раздел, поскольку диск с серверами C невелик. Мне пришлось изменить разрешение на эту папку (в данном случае D:\Repository), в качестве быстрого и грязного взлома, я просто добавил пользователя "Все" в эту папку и выбрал права "Изменить" (не самый безопасный, но грязный рабочий хак, тем не менее). Это решило проблему.

Ответ 11

Я учитываю одно и то же неправильное сообщение, и когда я "Get lock" совершает, успех ~

Ответ 12

Я сделал один голос для @DamianM  ответ. В моем случае, похоже, проблема была. File Corruption, что сделало невозможным запись на сервер. Проблема с SVN Commit для определенного расширения файла

Но вместо перезапуска сервера svn server/reboot server я скопировал dlls [файлы с проблемой] снова в рабочую папку и смог зафиксировать.

Ответ 13

У меня появилась такая проблема в последнее время (плагин eclipse 3.7 + svn) и перезагрузка моего компьютера .it работает сейчас!

Ответ 14

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

chmod -R 777 /path/to/repo

Ответ 15

У меня был тот же код ошибки, но ошибка оказалась вызванной прокси-сервером CNTLM, который я недавно установил на своей локальной машине.
Чтобы решить эту проблему, мне пришлось добавить дополнительный суффикс домена в список исключений прокси-прокси, чтобы иметь возможность зафиксировать сервер svn-команды, размещенный на месте.

Ответ 16

Сообщение об ошибке было менее информативным. Кажется, это вызвано различными причинами.

Для меня оказалось, что у меня не было права на запись в текущий каталог на локальном компьютере, где Subversion попыталась создать временный файл для сообщения commit, поскольку я попытался создать новый каталог непосредственно в репозитории.

Изменение текущего рабочего каталога в папку "Мои документы" решило проблему в одно мгновение.

Ответ 17

Время от времени мы сталкиваемся с той же проблемой. Мы попытались:

Локально: Retry svn clean Обновление svn убить все процессы svn

Сервер: Проверить открытые темы Отказывать SVN

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

Обычно это происходит в одном файле в фиксации, и мы фиксируем каждый отдельно, пока не выясним, какой ФАЙЛ вызывает проблему. Затем переходим к вышеупомянутому процессу.

Ответ 18

Резервное хранилище Mount Point для SubVersion было заполнено в нашем случае, добавив больше места.