Принудительная команда проверки SVN перезаписывает текущие файлы - PullRequest
63 голосов
/ 23 ноября 2008

Я добавляю существующий сайт в SVN.

Файлы уже существуют на веб-сервере, и теперь в хранилище существуют идентичные копии (- файлы конфигурации).

Я хочу преобразовать каталог веб-сервера в рабочую копию SVN, но при запуске:

svn checkout http://path.to/svn/repo/httpdocs .

Я получаю ошибку:

svn: не удалось добавить файл '': объект с таким именем уже существует

Как мне сказать SVN просто перезаписать те файлы, содержимое которых одинаково?

Ответы [ 5 ]

61 голосов
/ 10 августа 2009

svn checkout --force svn://repo website.dir

тогда

svn revert -R website.dir

Проверяет поверх существующих файлов в website.dir, но не перезаписывает их. Тогда возврат отменит их. Таким образом, вам не нужно закрывать сайт, чтобы завершить его.

53 голосов
/ 23 ноября 2008

Попробуйте вариант --force. svn help checkout дает подробности.

8 голосов
/ 09 июля 2009

Это можно сделать довольно легко. Все, что я сделал, это переместил существующий каталог, не находящийся под контролем версий, во временный каталог. Затем я проверил версию SVN на свое правильное имя каталога, скопировал файлы из временного каталога в каталог SVN и восстановил файлы в каталоге SVN. Если это не имеет смысла, ниже приведен пример:

/usr/local/www

mv www temp_www
svn co http://www.yourrepo.com/therepo www
cp -pR ./temp_www/* ./www
svn revert -R ./www/*
svn update

Надеюсь, это поможет, и я не уверен, почему простое обновление SVN не вернуло файлы обратно?

5 голосов
/ 18 апреля 2012

У меня не было 1,5, потому что я не контролирую компьютер. Файл, который вызывал у меня проблему, оказался файлом .jar в каталоге lib. Вот что я сделал, чтобы решить проблему:

rm -rf lib
svn up

Это основано на ответе Неда. То есть: я просто удалил подкаталог, который вызывал у меня проблему, а не весь репозиторий.

3 голосов
/ 23 ноября 2008

Перетащите из хранилища в новый каталог, затем переименуйте старый в old_crufty, а новый в my_real_webserver_directory, и все готово.

Если вы хотите, чтобы каждый файл был в SVN, то это хороший способ проверить вашу теорию. Если вы хотите, чтобы некоторые файлы отсутствовали в SVN, используйте метод копирования / вставки Брайана.

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