SVN: как обновить глубокую структуру папок? - PullRequest
2 голосов
/ 08 апреля 2011

У меня есть веб-приложение, которое использует сторонний компонент, состоящий из множества файлов и каталогов (CKEditor).Когда выходит новая версия, я копирую / перезаписываю новые файлы поверх существующих.Это заботится о добавленном и измененном контенте, но если в новом дистрибутиве отсутствует файл, который был там раньше, я в итоге сохраню устаревшую копию.Поскольку SVN полагается на папки .svn для состояния, я не могу просто удалить старую корневую папку и скопировать в новую.

Существует ли простой / стандартный способ обработки такого массового обновления с помощью SVN?

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Я обычно использую rsync с --exclude=.svn для этого типа вещей.

Но я думаю, что CKEditor имеет общедоступное репозиторий svn, поэтому в этом случае я бы использовал svn:externals, привязанный к конкретному выпуску, а затем запустил скрипт сборки в опубликованном каталоге, который находится в корневом каталоге сети, чтобы мой репозиторий мог выглядеть так:

trunk/
  web/
    index.html
    js/
      ckeditor/
    images/
    css/
  lib/
    ckeditor/ (svn:externals to CK_EDITOR_SVN_URL/tags/some-version)

Таким образом, я могу просто переключить внешнее устройство и сделать svn up. Это особенно полезно, если проект, на который нацелены ваши внешние пользователи, имеет версионные ветки, в которых постоянно интегрируются обновления BC. Таким образом, каждый раз, когда вы запускаете svn, вы получаете последние исправления ошибок и можете просто восстановить. Является ли это хорошей идеей, зависит от того, как разрабатывается конкретный проект, так что перед тем, как сделать это, вам захочется прочитать документацию для разработчиков.

0 голосов
/ 08 апреля 2011

Использование svn: externals является одной из альтернатив.Однако если вы предпочитаете хранить снимок сторонних библиотек в своем собственном репозитории, вам следует ознакомиться с концепцией веток поставщиков в SVN.Существует стандартный Perl-скрипт ( svn_load_dirs.pl ), доступный для массовой загрузки стороннего кода в репозиторий SVN, который правильно обрабатывает удаление.

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