У меня есть рабочая копия Subversion с хотя бы одним отсутствующим файлом (локальная копия удалена при устранении конфликта дерева). Это забавно, потому что файл имеет версию, он появляется в репозитории, разрешение конфликтов на дереве было на 100% локально (это произошло при обновлении, и я не совершал потом), и я запускал «svn cleanup» несколько раз, но ни один из моих Клиенты Subversion (командная строка svn и TortoiseSVN) могут обнаружить, что рабочая копия повреждена. Даже не возвращая все изменения, этот файл вернулся.Как проверить рабочую копию Subversion
Я исправлю это как обычно (свежая проверка в другом месте и копирование изменений с помощью WinMerge); У меня на самом деле есть другой вопрос:
Как вы можете проверить работоспособность рабочей копии?
Конечно, вы всегда можете проверить новую копию и использовать утилиту сравнения файлов, но ... нет ли лучшего способа? Есть ли инструмент для проверки рабочей копии, эквивалентной svnadmin verify
?
=== UPDATE ===
У меня хорошие ответы с уловок, чтобы предотвратить коррупцию рабочей копии, но мой вопрос был больше на линии найти способ, чтобы быть 100% уверены, что рабочий копия является как согласованной, так и связанной с фактическим содержимым репозитория; в других работах рабочий эквивалент команды svnadmin проверяет команду.
До сих пор, это выглядит следующим образом:
Subversion не предоставляет такой инструмент, и возможно, что формат данных SVN даже не позволяет писать один.
Обновление до пересмотра - это метод, который, как представляется, находит (и исправляет) некоторые проблемы, хотя вам часто приходится возвращаться назад и вперед к старой ревизии, и я полагаю, что он может обнаруживать недостающие файлы, если они были изменены в диапазоне пересмотра.
Проверка свежей рабочей копии выглядит как единственный 100% надежный метод.
У меня были схожие проблемы - переименование папок иногда вызывает проблему, хотя и не каждый раз. * Обычно *, возврат возвращает рабочую копию в допустимое состояние, но с неверсированными элементами («копия» стороны переименованной папки) остается позади. Но да, мне тоже нужен инструмент проверки достоверности. – Steve314
Возможно, проблема в том, что рабочее состояние копии действительно, а не то, что, по вашему мнению, должно быть. Например, для рабочей копии допустимо исключить определенные файлы или папки, которые находятся в репозитории. Просто потому, что состояние запутывает и не то, что вы намереваетесь, не означает, что оно не может возникнуть законно, и в этом случае «ошибка» не обнаруживается. Инструмент «Состояние этой рабочей копии», в котором содержится список «интересных», может быть более полезным. – Steve314
@ Steve314: Основное содержимое рабочей копии должно быть идентично содержимому в репозитории. Subversion - это централизованная система управления версиями, поэтому это обязательное условие, и оно должно быть обнаружено. Конечно, инструмент, который вы описали, также будет отличным (например, я бы хотел узнать, когда у меня есть .svn dirs из разных репозиториев), но это совсем другая история. –