Удаление файла из SVN без его удаления локально нигде не является общей проблемой. Одним из ярких примеров является файл .classpath в проекте Eclipse. Помещение этого файла конфигурации в SVN изумительно, если все машины, используемые в проекте, имеют одну и ту же установку Eclipse и Java. Как только это условие нарушено, он начинает разорвать другие проекты Eclipse. Это то, что нужно удалить файл из SVN без удаления ist в любом месте.
svn rm --keep-local .classpath
делает работу отлично на одной машине и в этот момент времени.
Проблема в том, что другие машины могут потерять этот файл (при обновлении) или воскресить его (при фиксации). Ошибка SVN заключается в том, чтобы не обрабатывать --keep-local
в репозитории и не распространять его на другие рабочие копии. Следовательно, на всех других машинах выше команда должна быть выполнена — лучше всего до фиксации или обновления.
Это, конечно же, будет работать на 90%, в лучшем случае. Исключения и повторные версии будут происходить внезапно. Мое решение состоит в каждой машине, у меня есть прямой или косвенный доступ, сделать
svn rm --keep-local .classpath
copy .classpath .classpath-nameOfTheMachine
svn add .classpath-nameOfTheMachine
Это настолько откровенным некрасиво трудно назвать «решением». Тем не менее он всегда позволял быстро ремонтировать любые последующие аварии.
Возможный дубликат [SVN Удалить файл из репозитория без удаления локальной копии] (http://stackoverflow.com/questions/542065/svn-remove-file-from-repository-without-deleting-local-copy) – Shai