Субверсія застрягла через "попередня операція не закінчена"?


229

Якщо я спробую оновити репортаж про підрив, він говорить, що я повинен запустити очищення. Якщо я запускаю очищення, він говорить про відсутність файлу. (Я видалив МАСИВНИЙ каталог файлів, який не вдалося здійснити сьогодні вранці з мого домашнього ПК, але потім я виконую той самий набір файлів з роботи, і тепер мій домашній репортаж перевантажений). Отже, очищення говорить:

Не вдалося очистити blablabla Неможливо встановити файл blablabla для читання-запису: Система не може знайти вказаний файл.

Якщо я його оновлюю, він говорить:

Команда: Помилка оновлення: Попередня операція не закінчена; запустіть 'очищення', якщо воно було перервано Помилка: Будь ласка, виконайте команду 'Очищення'. Виконано !:

Як мені дістати цю шпильку?


(крім видалення всієї інформації про SVN та повторної перевірки)
coderama

3
ця прикри помилка, чому я ненавиджу svn. Кожен раз, коли стикаюся з цим, мені доводиться повторно перевіряти, оскільки очищення з кореневої папки чи батьківської папки не працює. Але найбільша проблема полягає в тому, що він не відображає значки накладення на той час, тому я не знаю, який файл було змінено на резервну копію перед
виїздом

Повідомлення від @ sigurd-v - це справжня відповідь на питання, яке допомогло мені та багатьом іншим: stackoverflow.com/a/22717607/5613292
Мехді Джаван

Відповіді:


102

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

Якщо це все-таки не вдається, оскільки ви десь видалили дитину. Спробуйте видалити на 1 рівень вище з дочірнього режиму (припустимо, що це не корінь), і повторіть спробу оновлення та очищення.

Якщо спроби очищення не досягають успіху на будь-якому рівні, відповідь, на жаль, оформити нову робочу копію.


4
за прибирання від дитини реж! Це працює для мене!
Франва

1
Якщо ти це читаєш, то ти в біді :) Я ніколи не стикався з таким безладом з Гітом (поки що). Я закінчив прибирання / повернення / очищення тощо в будь-якому каталозі, який я міг, якщо Svn дозволить мені.
aliopi

2
Повідомлення від @ sigurd-v - це справжня відповідь на питання, яке допомогло мені та багатьом іншим: stackoverflow.com/a/22717607/5613292
Мехді Джаван

Я запустив очищення від Windows FileExplorer (з Turtoise), і це дало мені більш детальну помилку, яка сказала мені, що це за файл з проблемою, якимось чином SVN втратив цей файл, файл darm * .cache, тому я взяв інший .cache і перейменуйте його, щоб замінити файл, що відсутній, запустіть очистку, помилок цього разу немає, ВСЕ ВІДКЛЮЧЕНО !!
Джолман

331

Часто немає необхідності в новій касі або копіюванні.

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

Здається, svn іноді застрягає під час обробки команд / операцій. Усі ці операції зберігаються у файлі бази даних wc.db у папці .svn.

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

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

Ви можете отримати список усіх очікуваних операцій. Ці операції є тими, які помилка посилається на "не закінчено".

Забігаючи

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

всі старі операції видаляються з черги робіт, і помилка не зникає. Немає необхідності в новій касі або нічого


5
Ви завжди повинні намагатися запустити очищення, перш ніж спробувати вищевказане рішення. Це працює, якщо ви хочете отримати застряглий SVN-сховище без роботи, не вимагаючи оформити нову робочу копію.
Сигурд V

7
Завантаження sqlite.exe та запуск видалення насправді було швидше, ніж перевірка та злиття - чудова відповідь
Джеффрі Найт

12
Я також отримав "заблокований" після цього, але пройшов через "очищення svn"
Jeffrey Knight

1
Я запустив це на Debian, встановив за допомогою apt-get install sqlite3, тоді ти можеш запускати вищезазначені команди без .exe
Richard Merchant

3
Я також отримав повідомлення "заблоковано", але потім я запустив команду "Очистити", встановивши прапорець "Пробиває блокування", і воно спрацювало
Маккой

114

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


20
Команда консолі svn cleanupтакож надасть більш детальну інформацію, ніж використання плагіна Tortoise Explorer, що робить її дуже корисною в таких ситуаціях.
Брендон

7
Запуск команди консолі, ймовірно, дасть достатньо інформації, щоб реально вирішити проблему. Це набагато краща відповідь.
DDS

1
добре, я вибрав саму верхню папку та використовував svn cleanup, дякую
мертвій рибі

Я часто мав успіх у пошуках батьківських каталогів та чистоті роботи над ними, але це забирає багато часу та "магії". Ніколи не знав, що це поверне детальну помилку +1.
Філ Купер

Під час запуску svn cleanupпереконайтесь, що консоль піднята. Я цього не робив спочатку, і я отримав red-write: Access is deniedпомилку.
Тоні

26

У мене просто було подібне питання. Запуск Провідника процесів показав, що інша програма (Notepad ++) мала обробку файлів до папки, яку SVN намагався видалити. Коли я закрив Notepad ++, "Очищення" вдалося успішно запустити.


Це може спричинити проблему, згадану в питанні. Але я боюся, він не може його ліквідувати, якщо це вже сталося.
Gangnus

19

Я зіткнувся з цією проблемою після додавання баночки, яка вже є у SVN, і я додав нову версію з такою ж назвою.

В Eclipse я спробував це

  1. Клацніть правою кнопкою миші на папці> Команда> Оновити / Очистити.
  2. Очистіть, складіть та оновіть мою програму.
  3. Перезапустіть Eclipse.

Використовуючи вищезазначені дії, я можу синхронізувати.


1
Працювали для мене. Просто третій крок не є обов’язковим (перезапустіть Eclipse).
jpmottin

Це теж працювало для мене, я спробував так багато речей, але не вийшло. Я закрив свою візуальну студію і зайнявся прибиранням. велике спасибі
AhammadaliPK

18

Я спробував тут найбільш проголосовані відповіді та кілька інших безрезультатно. Мій WORK_QUEUEстіл був порожнім, і я не зміг спробувати очищення у вищій папці. Що ж робота полягала в наступному (це через Tortoise SVN);

  • Клацніть правою кнопкою миші на папці
  • Перейдіть до TortoiseSVN -> Очистити ...
  • Переконайтесь, що опція для цього Break Locksвстановлена, і натисніть кнопку ОК

Операція очищення зараз успішно завершена, і я можу продовжувати. Не потрібно завантажувати sqlite3 або інші складні рішення.


2
Поломка замків не робить те, що я думав. Він порушує лише локальні блокування, які він використовує у вашій системі. Не замки, які встановив хтось інший.
Брайан Карлтон

1
sqlite3 іноді вирішував мою проблему, але цей метод був занадто важким для запам'ятовування та очищення не вдався так часто. Цей метод врятував мене ..
СБН

9

Спроба запустити очищення, поки ваші файли відкриті, створила мені проблеми. як тільки я закрив свою заявку (Visual studio), я прибіг, і це було успішно


1
Правда. Переконайтеся, що ваші файли не використовуються та не перевіряються як інший користувач, наприклад адміністратор у Windows.
froggythefrog

6

Я використовую черепаху SVN. Коли очищення не вдалося, перевірте параметр очищення

Переконайтесь, що встановлено прапорець для вимикання замків .

Крок очищення

  • ліва кнопка миші в папці дослідження
  • виберіть меню "Черепаха SVN" -> "Очистити ..."
  • встановіть прапорець " Перервати блокування " і натисніть "ОК"

Це вже відповіло, але іноді малюнок допомагає

введіть тут опис зображення


4

У мене така ж проблема, в моєму випадку я використовував svn черепаху із заявою, про яку я маю на увазі. Використовуючи оболонку cmd Windows у кореневому режимі, я застосував очищення svn, а потім оновлення svn .... Тоді ви можете повернутися до режиму програми, і він буде працювати ідеально!


2

Я спробував видалити папку .svn в інше місце і помістив її назад в ту ж кореневу папку. Після того, як я спробував оновити SVN, він оновлювався. Я не знаю, як саме це працювало.


2

У мене була така ж проблема, і я якось виявив, що у мене є прихований .svn файл на рівні c: \. Як тільки я видалив цю приховану папку (.svn), все працювало нормально. Я, мабуть, ненавмисно створив робочий каталог на кореневому диску.


2

У моєму випадку у мене був глотковий годинник, який спричинив проблеми. Після його зупинки я міг виконати команду Cleanup.


Це допомогло мені вбити небажаного JVM та прогресувати.
Блюдо

2

привіт, хлопці, у моїх випадках, коли я закриваю Visual Studio і спробую CleanUp, це працює, добре провести час


2

Я також зупинився на тому ж питанні, що я спробував удар:

1. Спробуйте вбити процес, пов’язаний зі svn, тобто TSVNCache.exe і TortoiseProc 2.Ревертування неперевершених файлів та видалення таких самих, які я маю у svn. 3.cleanup за допомогою командного рядка "очищення svn"

і нарешті, коли перезавантажили робочий стіл, він працював на мене, тому для перезавантаження системи працював для мене


1

видаліть svn з головної папки та замініть її на іншу життєздатну копію, яку ви маєте з elsewere.і потім оновіть. папка svn зазвичай буде прихованою папкою. Тож переконайтесь, що слід не приховувати папку, перш ніж зробити вищезазначені дії.


1

Обхід, який працював на мене:

  1. Виріжте вміст свого каталогу та скопіюйте його в іншу папку.
  2. Запустіть очищення з командного рядка в порожній папці.
  3. Скопіюйте файли назад у вихідну папку.

Зроблено, але я не можу пояснити, чому це відбувається. Якщо ви не видалите файли, команда очищення скаже, що він не може читати / записувати ці файли.


1

У мене був той самий випуск, що працював для мене:

  1. Скопіюйте свої папки та файли в інше місце, скажіть у папку (я нещодавно змінив свої файли, і зобов'язання не вдалося і призвело до вирішення проблеми)
  2. ознайомтеся з новою робочою копією
  3. скопіюйте змінені файли з папки в робочу копію та замініть існуючі файли. Здійснення / оновлення має працювати зараз

1

У мене виникла помилка типу "Неможливо змінити perms файлу" /Users/Code/UnitTest.cpp ': Немає такого файлу чи каталогу ". Підривник плутається щодо файлу, якого вже немає. Я просто зробив щось на кшталт "echo ABCD >> /Users/Code/UnitTest.cpp", щоб створити копію файлу, а потім очистити. Це спрацювало.


1

У моєму випадку помилка з’явилася під час спроби ввести зсередини IDE. Коли я виконав провідник одних і тих самих каталогів з TortoiseSVN в провіднику, операція вдалася.


1

Це сталося зі мною, коли я користувався зовнішніми, і одна з них була пошкодженою. Мені довелося піти в ту папку і провести очищення. Потім очищення працювало на всю робочу копію.

Приклад: Використовуючи зовнішню ^/widgets/foo common/foo-widget, спочатку виконайте очищення в папці common/foo-widget.


1

Цю помилку я вирішив сьогодні, коли сталася спроба взяти на себе зобов’язання SVN. Помилка була справжньою, TortoiseSVN не зміг отримати доступ до файлу, який я намагався ввести. Цей файл було збережено під час запуску програми "Як адміністратор" у Windows. Це означає, що файл має доступ адміністратора, але не має доступу з мого облікового запису (TortoiseSVN працює як інтерактивний користувач). Я взяв право власності на номінований файл під своїм обліковим записом Windows, і після цього очищення вдалося продовжити.


0

Я спочатку отримав цю проблему, намагаючись зареєструватися в TortoiseSVN. Спочатку обидві програми очищення TortoiseSVN та очищення консолі svn не вдалися із подібними повідомленнями, як оригінальний плакат.

Але моє рішення (з’ясувалося випадково) було просто почекати кілька хвилин. Я думаю, що TSVNCache під час реєстрації тримався за деякі з цих файлів.


0

виконайте нижче кроки.

1) Перейдіть до каталогу, де ви не зможете успішно очистити svn. (Root folder або дочірня папка).

2) Виберіть .svnпапку в каталозі, виріжте цю папку та вставте її в окремий диск або в окреме місце (поза каталогом svn)

3) Тепер поверніться до каталогу - клацніть правою кнопкою миші та виберіть TortoiseSVN -->Repo-browser

4) Checkoutпапку (вона не буде виконувати свіжу оплату).

5) Усі ваші предмети будуть переоформлені знову, і він відновить внутрішню проблему svn, і проблему слід вирішити.


він ТІЛЬКИ виконує повний замовлення. будь-яка допомога?
відвертийJ

0

У моєму випадку працював фоновий екземпляр віртуальної машини Java, в результаті чого очищення було успішним.


0

Я взяв папку .svn у свого колеги-розробника і замінив на це свою папку .svn. Це працювало для мене. Не знаю, які можуть бути інші наслідки!


0

Використовуючи це посилання, https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html

Я помітив, що в підручнику було перевірено 6 найкращих варіантів. У відчаї я спробував це за допомогою цих прапорців, і на мій подив, це спрацювало. Не забудьте уважно прочитати, що кожен робить. Дивлячись на опис кожного, вони здавались безпечними для мене, тому один із цих перевірених предметів, здавалося, виправив будь-яку проблему, яка мене стримувала.


0

Це може статися, коли у вас все ще відкриті файли, коли ви намагаєтесь переключити / очистити SVN.

У мене було відділення, де я створив новий файл, який я відкрив в іншій програмі. Перехід на іншу гілку не міг видалити файл, що призвів до виходу з ладу комутатора. Це також було причиноюsvn cleanup збій, однак це не відображається як причина в інтерфейсі Tornise SVN.

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

Закриття будь-яких ручок / вікон відкритого файлу та запуску консолі svn cleanupдозволяє очищенню правильно працювати.

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


0

Крім відповіді Sigurd V (спершу слід спробувати), деякі більші бази коду мають декілька папок '.svn', і це не обов'язково те, що в кореневому каталозі має завдання, що блокується.

Якщо це так, вам потрібно перевірити кожен. Якщо у вас вже є SQLite та Powershell, ви можете швидко знайти каталог, який порушує вас.

Щоб знайти, які папки заблоковані, запустіть (замініть 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" } }.

Це дає список каталогів .svn і, під кожним, список будь-яких поточних завдань.

Якщо є незакінчені завдання, для кожного запуску (заміни path\to\sqlite.exeта path\to\.svn\wc.db):

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


0

Я бачив кілька проблем svn, включаючи цю, вирішену шляхом видалення / створення .svn/tmpкаталогу. Потім бігайтеsvn cleanup


-3

Будь ласка, перейдіть за цим посиланням. Вирішіть ваше питання повністю.

Клацніть правою кнопкою миші головний каталог -> SVN - Черепаха -> Очистити

https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-cleanup.html


1
Чим це рішення відрізняється від рішення Джошуа Маккіннона, отриманого кілька років тому?
якобом
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.