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