Помилка заблокованої робочої копії у черепасі svn під час фіксації


94

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

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

Я спробував відкрити папку , клацнувши правою кнопкою миші на ньому і вибравши Tortoise SVN> блокування , це говорить

Там нічого розблокувати. Жоден файл не має блокування в цій робочій копії

У чому може бути проблема?

Відповіді:


232

Немає проблем ... спробуйте це:

  • Перейдіть до папки SVN верхнього рівня.
  • Клацніть правою кнопкою миші на папці (у якій є ваші файли svn)> TortoiseSVN> CleanUp

Це напевно вирішить вашу проблему. Я робив це багато часу ... :)

Примітка. Переконайтеся, що у діалоговому вікні очищення вибрано параметр "Зірвати блокування".


дякую @MicroEyes ... тепер я можу здійснити. У мене є лише один невеликий сумнів. Після внесення змін до файлу, чи слід спочатку комітувати, а потім оновлювати файл (у робочій копії) або оновлювати, а потім фіксувати?
Anil

2
Завжди слідкуйте за оновленням, а потім фіксуйте. В іншому випадку ви отримаєте повідомлення про оновлення від TortoiseSVN, оскільки ваша копія версії старіша, ніж зберігається на сервері SVN. Тож у будь-якому випадку вам доведеться оновити та зафіксувати.
MicroEyes

1
так .. це вирішило мою проблему, пов’язану з оновленням моєї поточної копії до версії svn.
Jayesh Bhoi

я щойно додав файли в SVN і намагаюся зробити це, але я отримав ту ж помилку. я спробував команду cleanUp, але не можу вирішити цю проблему.
Ашок Чандрапал

Я це багато переживаю. Чи можу я зменшити час, який займає svn, перш ніж відображати це повідомлення про помилку (п'ять-десять секунд на даний момент)? Тож я можу розпочати очищення раніше.
не користувач

15

Прийнята відповідь для мене не спрацювала. Щоб виправити цю проблему, мені довелося клацнути правою кнопкою миші на заблокованому файлі, вибрати repo-browser. Це відкрило спливаюче вікно з файлами, якими вони є на сервері SVN. Потім я клацнув правою кнопкою миші на заблокованому файлі та вибрав break lock.

Коли я закрив браузер сховища, повернувшись до провідника, я, нарешті, міг зробити коміт!


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

12
  1. Клацніть правою кнопкою миші на папці.
  2. TortoiseSVN-> Перевірити наявність змін.
  3. Клацніть на кнопку Перевірити сховище.
  4. Переривання блокування всіх повернутих файлів

3

Я також натрапив на це питання. Для деяких я хотів би зазначити, що якщо він заблокований, ПЕРЕВІРІТЬСЯ СВОЄЮ КОМАНДОЮ. У когось із команди можуть бути заблоковані деякі речі, оскільки вони над цим працюють (це дозволяє розробникам працювати над речами, не заходячи та намагаючись працювати над тим самим контентом). Якщо це так, звільнення блокування та оновлення можуть втратити дані розробника, який його заблокував.

З огляду на це, я стурбований тим, що опція "очищення", можливо, змінить мою робочу копію або видалить інформацію з рівня Repo Subversion. Це не так. Відповідь на мене спрацювала. Мій заблокувався, коли я натиснув кнопку скасувати в середині оновлення. У підсумку я витягнув деякі наші гілки, і мені це не знадобилося, тому я натиснув "Скасувати". Моя робоча копія заблокована. Я не зміг знайти жодного документа, який виявився б "заблокованим", коли я використав команду "звільнити блокування". Це мене здивувало, і після швидкого прочитання (і цієї теми) я спробував команду "очистити". Після очищення це вирішило мою проблему, і більше нічого не заблокувалось.

джерело: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html


2

У SVN є кілька значень "замок", і деякі з цих відповідей, що говорять про "вимкнути замок" або товариша по команді, що тримає замок, не використовують відповідне значення для вихідного питання. Це питання стосується "блокувань робочої копії" (тобто вони повністю локальні для робочої копії на вашому комп'ютері і не мають нічого спільного з вами чи товаришами по команді, які тримають замок / виписку з файлу). Прийнята відповідь MicroEyes стосується правильного використання і є вашим найкращим варіантом, коли це трапляється.

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

Ознайомтесь із цією сторінкою у документах Tornoise SVN щодо трьох способів використання "блокування": http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Витяг (курсив додано):

Три значення "блокування"

У цьому розділі та майже скрізь у цій книзі слова “замок” та “блокування” описують механізм взаємного виключення між користувачами, щоб уникнути суперечливих комітів. На жаль, існують ще два види "замка", з якими іноді потрібно хвилювати Суверсію, а отже, і цю книгу.

Другий - це блокування робочих копій , що використовується внутрішньо Subversion для запобігання зіткненням між кількома клієнтами Subversion, що працюють на одній робочій копії. Зазвичай ви отримуєте ці блокування щоразу, коли така команда, як update / commit / ..., переривається через помилку. Ці блокування можна видалити, запустивши команду очищення на робочій копії, як описано в розділі "Очищення".

...


2

Я не уявляв, який файл має блокування, тому я вирішив цю проблему:

  1. Перейшов до папки найвищого рівня
  2. Клацніть очищення, а також поставте галочку в списку методів очищення -> Зімкніть блокування

Це працювало для мене.


1

Я пробував різні речі, включаючи "Очищення" в нижчих підкаталогах. Нарешті, я спробував оновити папку верхнього рівня. Нічого. Потім я прочитав підказку "Очистити верхній рівень". Я спробував це. Частина прибирання вдалася, але замок залишився. Моє рішення було повернутися на верхній рівень, очистити, а потім очистити кожну червону (!) Папку, до якої я міг деталізувати . Після того, як все було «очищено», оновлення працювало чудово. Порада "зламати замок" теж виглядає добре, за винятком того, що хтось із вашої команди може мати законний контроль за речами.


0

Мені вдалося заблокувати себе у файлі в svn - не знаю як - але коли я спробував (повторно) отримати замок (Черепаха показувала опцію "Отримати блокування" для файлу), вона скаржилася, що вже має замок. Я спробував видалити файл і здійснити зміну каталогу - той самий результат. Я спробував CleanUp (включаючи оновлення накладання), але і це не вдалося.

Рішенням було зайти в репо-браузер Tortoise, знайти файл і скористатися функцією блокування перерви .


0

Якщо це ( https://stackoverflow.com/a/11764922/3045875 ) не допомагає: Перевірте, чи не заважає інший інструмент SVN, і закрийте інструмент. Ми просто мучилися пару годин при об’єднанні за допомогою TortoiseSVN і мали десятки таких помилок блокування. Врешті-решт ми зрозуміли, що інтеграція Matlabs SVN заважає, і після закриття все вийшло.


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