Как удалить файл из системы управления версиями, не удаляя его?

Обновить

November 2018

Просмотры

64.7k раз

120

Если я бегу svn rm file, файл удаляется из локальной рабочей копии.

Что я делаю сейчас:

$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file

Как избежать SVN также удаление локального файла при использовании svn rm?

3 ответы

262

Вы хотите , чтобы --keep-localпараметр командной строки. Это удаляет файл из системы управления версиями , не удаляя его из файловой системы.

$ svn rm --keep-local my_important_file
10

Удаление файла из SVN без не удаляя его локально нигде является общей проблемой. Одним из ярких примеров является файл .classpath в проекте Eclipse. Ввод этого файла конфигурации под SVN изумителен до тех пор, как все машины, используемые в проекте, имеют один и тот же Eclipse, и установку Java. После того, как это условие нарушается, совершающие начинают разрушаться другими проектами Eclipse. Это точка один должен удалить файл из SVN, не удаляя IST в любом месте.

svn rm --keep-local .classpath

делает работу отлично на одной машине, и в этот момент времени.

Проблема заключается в других машинах могут потерять этот файл (при обновлении) или воскресить его (на совершение). Недостаток SVN является ни обращаться --keep-localв хранилище и не распространять его на другие рабочие копии. Следовательно , на всех других машинах выше команды должна быть выполнена - лучше , прежде чем какой - либо фиксации или обновления.

Это, конечно, будет работать на 90%, в лучшем случае. Удаляет и повторно versionings будет происходить из внезапно. Мое решение состоит в каждой машине, у меня есть прямой или косвенный доступ к, не

svn rm --keep-local .classpath
copy .classpath .classpath-nameOfTheMachine
svn add .classpath-nameOfTheMachine

Это так откровенно некрасиво трудно назвать «решением». Тем не менее, это всегда разрешено быстрый ремонт любых последующих аварий.

-2

У меня нет ответа на этот конкретный вопрос, но у меня есть ответ на соответствующий вопрос, который, как удалить все файлы (т.е. не конкретный один) в директории с контролем версий, не удаляя их локально. Это решение исходит от реализации Scientific Linux.

ls -a .svn

должен показать каталог SVN, который хранит данные управления. Просто:

rm -r .svn

избавится от этого каталога. Затем, набрав:

svn status

будет производить «предупреждение: этот каталог не является рабочей копией» ошибкой, потому что он больше не находится под контролем версий.

Надеюсь, это поможет.

Связанные вопросы