Subversion застревает из-за "предыдущей операции еще не закончена"?

Если я попытаюсь обновить репозиторий subversion, он говорит, что я должен запустить очистку. Если я запустил очистку, он говорит, что файл отсутствует. (Я удалил каталог MASSIVE файлов, которые не удалось совершить сегодня утром с моего домашнего компьютера, но затем я беру на себя тот же набор файлов с работы, и теперь мой домашний репо распадается). Итак, очистка говорит:

Очистить не удалось обработать blablabla Не удается установить файл blablabla read-write: система не может найти указанный файл.

Если я обновляю, он говорит:

Команда: Ошибка обновления: предыдущая операция еще не завершена; выполните "очистку", если она была прервана. Ошибка: выполните Команда "Очистка". Выполнил:

Как я могу раскрыть это?

Ответ 1

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

Если это все еще не удается, поскольку вы где-то удалили дочерний каталог. Попробуйте также удалить 1 уровень выше из дочернего каталога (при условии, что это не корневой каталог), и повторите попытку обновления и очистки.

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

Ответ 2

Часто нет необходимости в новой проверке или копировании.

Я только что решил аналогичную проблему, связанную с ошибкой "предыдущая операция не завершена" с помощью этого (Ссылка)

Кажется, что svn иногда застревает во время обработки команд/операций. Все эти операции хранятся в файле базы данных wc.db в папке .svn.

Загрузив SQLite в мой каталог оформления и запустив

sqlite3.exe .svn/wc.db "select * from work_queue"

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

Запустив

sqlite3.exe .svn/wc.db "delete from work_queue"

все старые операции удаляются из рабочей очереди, и ошибка исчезает. Нет необходимости в новой проверке или чем-либо.

Ответ 3

Запуск консоли svn cleanup решил для меня ту же проблему.

Ответ 4

У меня была аналогичная проблема. Прогон Process Explorer показал, что другая программа (Notepad ++) имела дескриптор файла в папку, которую SVN пытался удалить. Когда я закрыл Notepad ++, "Clean Up" смог успешно работать.

Ответ 5

Я столкнулся с этой проблемой после добавления jar, который уже находится в SVN, и я добавил новую версию с тем же именем.

В Eclipse я пробовал это

  • Щелкните правой кнопкой мыши папку > Командa > Обновить/Очистить.
  • Очистите, создайте и обновите мое приложение.
  • Перезапустите Eclipse.

Используя вышеописанные шаги, я могу синхронизировать.

Ответ 6

Здесь я попробовал большинство проголосовавших ответов, а некоторые другие безрезультатно. Моя таблица WORK_QUEUE была пуста, и я не смог попробовать очистить папку более высокого уровня. То, что работало, было следующим (это через Черепаху SVN);

  • Щелкните правой кнопкой мыши на папке
  • Перейти к TortoiseSVN → Очистить...
  • Убедитесь, что опция Break Locks отмечена, и нажмите ОК

Операция очистки теперь успешно завершена, и я могу продолжить. Не требуется загрузка sqlite3 или других сложных решений.

Ответ 7

Попытка запуска очистки при открытии файлов дала мне проблемы. как только я закрыл свое приложение (Visual studio), я запустил очистку и успешно прошел

Ответ 8

У меня такая же проблема, в моем случае я использовал svn tortoise с приложением, которое я имею в виду. Используя CMD-оболочку окон в корневом режиме, я применил svn cleanup, а затем svn update.... Тогда вы можете вернуться в режим приложения и работать он будет отлично!

Ответ 9

Я попытался удалить папку .svn в другое место и поместил ее обратно в ту же корневую папку. После того, как я попытался обновить SVN, он обновился. Я не знаю, как именно это сработало.

Ответ 10

У меня была та же проблема, и я обнаружил, что у меня есть скрытый файл .svn на уровне c: \. Как только я удалил эту скрытую папку (.svn), все сработало нормально. Я должен был непреднамеренно создать рабочий каталог на корневом диске.

Ответ 11

В моем случае у меня был gulp -watch запуск, который вызвал проблемы. После остановки я смог выполнить команду Cleanup.

Ответ 12

Привет, ребята, в моих случаях после того, как я закрыл Visual Studio и повторю попытку CleanUp. хорошо провести время

Ответ 13

удалите svn из основной папки и замените его на другую жизнеспособную копию, которую вы получили от elsewere.and затем обновите. Обычно папка svn является скрытой папкой. Поэтому, пожалуйста, убедитесь, чтобы показать папку перед выполнением вышеуказанных шагов.

Ответ 14

Обходной путь, который работал у меня:

  • Вырезать содержимое вашего каталога и скопировать его в другую папку.
  • Запустите очистку из командной строки в пустой папке.
  • Скопируйте файлы в исходную папку.

Сделано, но я не могу объяснить, почему это происходит. Если вы не удаляете файлы, команда очистки говорит, что он не может читать/записывать эти файлы.

Ответ 15

У меня была та же проблема, что сработало для меня:

  • Скопируйте свои папки и файлы в другое место, скажите в папку (я недавно поменял свои файлы, а обязательство не удалось и вызвало проблему)
  • ознакомьтесь с новой рабочей копией.
  • скопируйте измененные файлы из папки в рабочую копию и переопределите существующие файлы. Commating/Updating должно работать сейчас

Ответ 16

У меня была ошибка, например "Невозможно изменить perms of file" /Users/Code/UnitTest.cpp: Нет такого файла или каталога ". Подрывная деятельность путается с файлом, который больше не существует. Я просто сделал что-то вроде" echo ABCD → /Users/Code/UnitTest.cpp", чтобы создать копию файла, а затем очистить. Это сработало.

Ответ 17

В моем случае ошибка возникла при попытке совершить транзакцию из среды IDE. Когда я выполнил фиксацию тех же каталогов с TortoiseSVN в проводнике, операция прошла успешно.

Ответ 18

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

Пример: используя внешний ^/widgets/foo common/foo-widget, сначала выполните очистку в папке common/foo-widget.

Ответ 19

Я исправил эту ошибку сегодня, когда она произошла, пытаясь зафиксировать SVN. Ошибка была подлинной, TortoiseSVN не смог получить доступ к файлу, который я пытался зафиксировать. Этот файл был сохранен при запуске программы "Как администратор" в Windows. Это означает, что файл имеет права администратора, но не доступ из моей учетной записи (TortoiseSVN работает как интерактивный пользователь). Я вступил во владение назначенным файлом под своей учетной записью Windows, и после этого очистка смогла продолжить.

Ответ 20

Я также застрял с той же проблемой, которую я попробовал удар:

1. Попробуйте убить процесс, связанный с SVN, т.е. TSVNCache.exe и TortoiseProc. 2. Восстановление неверсионных файлов и их удаление, которые я имею в SVN. 3. Очистить с помощью командной строки "SVN Cleanup"

и наконец при перезапуске рабочего стола у меня это работало

Ответ 21

выполните следующие шаги.

1) Перейдите в каталог, в котором вы не можете успешно очистить его с помощью svn. (Корневая папка или дочерняя папка).

2) Выберите папку .svn в каталоге, вырежьте эту папку и вставьте ее на отдельный диск или в другое место (из каталога svn)

3) Теперь вернитесь в каталог - щелкните правой кнопкой мыши и выберите TortoiseSVN -->Repo-browser

4) Checkout папка (она не будет выполнять новую проверку).

5) Все ваши элементы будут снова проверены, и он восстановит внутреннюю проблему svn, и проблема должна быть решена.

Ответ 22

У меня изначально возникла эта проблема с попыткой зарегистрироваться в TortoiseSVN. Изначально обе и очистка TortoiseSVN, и очистка консоли svn не выполнялись с аналогичными сообщениями, как исходный плакат.

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

Ответ 23

В моем случае запускался фоновый экземпляр виртуальной машины Java, убивая, какая очистка прошла успешно.

Ответ 24

Я взял папку .svn от моего коллеги-разработчика и заменил мою папку .svn этим. Это сработало для меня. Не знаю, какие могут быть другие последствия!

Ответ 25

Используя эту ссылку, https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html

Я заметил, что учебник проверил 6 лучших вариантов. В отчаянии я попробовал использовать эти флажки и, к моему удивлению, это сработало. Обязательно внимательно прочитайте, что делает каждый. Глядя на описание каждого из них, они показались мне безопасными, поэтому один из этих проверенных пунктов, похоже, устранил проблему, которая меня удерживала.

Ответ 26

Это может произойти, когда у вас все еще открыты файлы при попытке включить/очистить SVN.

У меня была ветка, где я создал новый файл, который я открыл в другом приложении. Переключение на другую ветку не может удалить файл, вызывая сбой коммутатора. Это также svn cleanup к сбою svn cleanup, однако это не отображается в качестве причины в пользовательском интерфейсе SVN Tortoise.

Запуск svn cleanup из окна консоли (в корневой папке) ясно показывает file\location\file.ext: The process cannot access the file because it is being used by another process ошибки file\location\file.ext: The process cannot access the file because it is being used by another process

Закрытие любых открытых файловых дескрипторов/окон и запуск svn cleanup консоли svn cleanup затем позволяет очистке работать правильно.

Короткая история - запустите svn cleanup в консоли, чтобы увидеть более подробную ошибку.

Ответ 27

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

Если это так, вы должны проверить каждый. Если у вас уже есть SQLite и Powershell, вы можете быстро найти проблемный каталог.

Чтобы path\to\sqlite.exe какие папки заблокированы, запустите (заменив path\to\sqlite.exe):

Get-ChildItem -Path. -Filter '.svn' -Recurse -Hidden | foreach { $toFind = $_.FullName + "\wc.db"; gci $toFind | foreach { echo $_.FullName; path\to\sqlite.exe $_.FullName "select * from work_queue" } } Get-ChildItem -Path. -Filter '.svn' -Recurse -Hidden | foreach { $toFind = $_.FullName + "\wc.db"; gci $toFind | foreach { echo $_.FullName; path\to\sqlite.exe $_.FullName "select * from work_queue" } }.

Это дает список каталогов .svn и, под каждым, список текущих задач.

Если есть какие-либо с незавершенными задачами, для каждого запуска (замена path\to\sqlite.exe и path\to\.svn\wc.db):

path\to\sqlite.exe path\to\.svn\wc.db "delete from work_queue"

Ответ 28

Я видел несколько проблем с svn, в том числе и эту, .svn/tmp путем удаления/создания .svn/tmp. Затем запустите svn cleanup

Ответ 29

Я использую черепаху SVN. Если очистка не удалась, проверьте параметр очистки

Убедитесь, что опция Разблокировать блокировки включена.

Шаг очистки

  • левая кнопка мыши в папке исследования
  • выберите "Черепаха SVN" → "Очистить..." меню
  • отметьте " Break Locks " и нажмите "ОК"

Уже ответили, но иногда помогает картинка

enter image description here