Что делать при сбое svn cleanup? - PullRequest
239 голосов
/ 01 октября 2008

У меня много изменений в рабочей папке, и что-то напортачило, пытаясь сделать обновление.

Теперь, когда я запускаю 'svn cleanup', я получаю:

>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control

MemPoolTests.cpp - это новый файл, добавленный другим разработчиком и сбитый при обновлении. Раньше его не было в моей рабочей папке.

Что я могу сделать, чтобы попытаться продвинуться вперед без необходимости извлекать свежую копию хранилища?

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

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

Ответы [ 31 ]

2 голосов
/ 09 декабря 2010

Если проблема заключается в чувствительности к регистру (которая может быть проблемой при выходе на Mac, а также в Windows), и у вас нет возможности проверить систему * nix, должно работать следующее Вот процесс с самого начала:

% svn co http://[domain]/svn/mortgages mortgages

(Оформить заказ ... потом ...)

svn: In directory 'mortgages/trunk/images/rates'
svn: Can't open file 'mortgages/trunk/images/rates/.svn/tmp/text-base/Header_3_nobookmark.gif.svn-base': No such file or directory

Здесь SVN пытается получить два файла с похожими именами, которые отличаются только регистром - Header_3_noBookmark.gif и Header_3_nobookmark.gif. Файловые системы Mac по умолчанию нечувствительны к регистру таким образом, что SVN задыхается в подобных ситуациях. Итак ...

% cd mortgages/trunk/images/rates/
% svn up
svn: Working copy '.' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

Однако запуск svn cleanup не работает, как мы знаем.

% svn cleanup
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'spacer.gif' is not under version control

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

% rm *; rm -rf .svn/log; svn cleanup
% svn up Header_3_nobookmark.gif
A    Header_3_nobookmark.gif
Updated to revision 1087.
% svn mv Header_3_nobookmark.gif foo
A         foo
D         Header_3_nobookmark.gif
% svn up
A    spacer.gif
A    Header_3_noBookmark.gif

После этого я смог вернуться в корневой каталог проекта и запустить svn up, чтобы проверить остальную часть.

2 голосов
/ 17 октября 2012

Всякий раз, когда у меня возникают подобные проблемы, я использую rsync (примечание: я использую Linux или Mac OS X), чтобы выручить так:

# Go to the parent directory
cd dir_above_borked

# Rename corrupted directory
mv borked_dir borked_dir.bak

# Checkout a fresh copy
svn checkout svn://... borked_dir

# Copy the modified files to the fresh checkout
# - test rsync
#   (possibly use -c to verify all content and show only actually changed files)
rsync -nav --exclude=.svn borked_dir.bak/ borked_dir/

# - If all ok, run rsync for real
#   (possibly using -c again, possibly not using -v)
rsync -av --exclude=.svn borked_dir.bak/ borked_dir/

Таким образом, у вас есть новая проверка, но с теми же рабочими файлами. Для меня это всегда работает как шарм.

2 голосов
/ 30 декабря 2016

Я столкнулся с этим слишком поздно. Хитрость для меня заключалась в том, что после выбора «Очистить» в диалоговом окне параметров всплывающего окна установите флажок «Снять блокировки», а затем «ОК». Удачно зачищено для меня.

2 голосов
/ 03 января 2017

TL; DR

Выполнить команду svn cleanup в терминале:

~/path/to/svn-folder/$ svn cleanup

Я пробовал разные решения объяснил здесь, но никто не работал .

Действие Команда Обновление головы не удалось:

svn: E155004: в '/ home / user / path / to / svn-folder' есть незавершенные рабочие элементы; сначала запустите 'svn cleanup'.

Действие Команда Очистка завершается с той же ошибкой.
Примечание: моя версия SVN 1.9.3.

Решение, которое мне помогло: запустить svn cleanup команда в терминале :

~/path/to/svn-folder/$ svn cleanup

Команда выполнена успешно. Затем Team Обновление в Eclipse снова заработало.

Также проверьте Ответ Криса , если svn cleanup не работает.

2 голосов
/ 10 мая 2011

У меня только что была такая же проблема на Windows 7 64-bit. Я запустил консоль как администратор и удалил каталог .svn из проблемного каталога (получил ошибку в журналах или что-то в этом роде, но проигнорировал ее). Затем в проводнике я удалил проблемный каталог, который больше не показывался как под управлением версиями. Затем я запустил обновление, и все пошло так, как ожидалось.

2 голосов
/ 28 июня 2012

У меня была такая же проблема. Для меня причиной стал конфликт с EasySVN и (TortoiseSVN или просто SVN). У меня было автоматическое обновление и коммит с EasySVN (который не работал).

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

1 голос
/ 04 сентября 2015

Когда я сталкиваюсь с этой проблемой с TortoiseSVN (Windows), я перехожу на Cygwin и запускаю оттуда ' svn cleanup '; у меня корректно очищается, после чего все работает от TortoiseSVN.

1 голос
/ 11 октября 2013

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

1 голос
/ 26 января 2011

(Прежде чем пытаться переместить папки и выполнить новую проверку.)

Удалите папку, в которой находятся поврежденные файлы - да, даже папку .svn, затем сделать svn cleanup в самой верхней / родительской папке.

1 голос
/ 28 марта 2011

Subclipse запутывается из-за поистине дьявольского поведения блокировки Windows. Unlocker твой друг. Это может найти заблокированные файлы и принудительно снять блокировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...