Если я запускаю svn rm file
, файл удаляется из локальной рабочей копии.
Что я сейчас делаю:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
Как мне избежать того, чтобы svn также удалял локальный файл при использовании svn rm
?
svn
version-control
Хуанхо Конти
источник
источник
Ответы:
Вам нужен параметр
--keep-local
командной строки. Это удаляет файл из системы контроля версий, не удаляя его из файловой системы.Примечание:
--keep-local
только влияет наsvn rm
вашу копию. У других пользователей может быть удалена их собственная локальная копия файла, если между их локальной копией и репозиторием не возникает конфликта из-за внесенных ими изменений. Возможно, это не желаемый результат. См. Комментарии ниже.источник
Удаление файла из SVN без его локального удаления нигде не является распространенной проблемой. Ярким примером является файл .classpath в проекте Eclipse. Помещение этого файла конфигурации в SVN - это замечательно, если все машины, используемые в проекте, имеют одинаковую установку Eclipse и Java. Как только это условие нарушается, коммиты начинают нарушать работу других проектов Eclipse. Это тот момент, когда нужно удалить файл из SVN, не удаляя его нигде.
отлично выполняет свою работу на одной машине и в данный момент времени.
Проблема в том, что другие машины могут потерять этот файл (при обновлении) или воскресить его (при фиксации). Недостаток SVN не в том, чтобы обрабатывать его
--keep-local
в репозитории или распространять его на другие рабочие копии. Следовательно, на всех других машинах необходимо выполнить указанную выше команду - лучше всего перед фиксацией или обновлением.Это, конечно, сработает в лучшем случае на 90%. Удаление и изменение версии произойдут внезапно. Мое решение - сделать так, чтобы каждая машина, к которой у меня есть прямой или косвенный доступ,
Это настолько отвратительно, что вряд ли можно назвать «решением». Тем не менее, это всегда позволяло быстро устранить любые более поздние аварии.
источник
У меня нет ответа на этот точный вопрос, но у меня есть ответ на связанный с ним вопрос, а именно, как удалить все файлы (т.е. не конкретный) в каталоге из системы контроля версий, не удаляя их локально. Это решение взято из реализации Scientific Linux.
ls -a .svn
должен показать каталог svn, в котором хранятся управляющие данные. Просто:
rm -r .svn
избавится от этого каталога. Затем введите:
svn status
выдаст сообщение об ошибке «предупреждение: этот каталог не является рабочей копией», потому что он больше не находится под контролем версий.
Надеюсь, это поможет.
источник