Лучший способ заменить целое дерево каталогов в Subversion? - PullRequest
11 голосов
/ 11 октября 2008

В моем проекте Subversion у меня есть несколько каталогов, которые содержат другие проекты с открытым исходным кодом, в которых нуждается мой код. Например, ffmpeg, freetype, matrixssl и некоторые другие.

Каков наилучший способ обновления SVN для поддержки последней версии одного из этих проектов?

По сути, я буду делать следующее (на примере ffmpeg):

1) Rename current ffmpeg folder to ffmpeg.old
2) Download new version of ffmpeg from net
3) Make sure it and my code compile and work fine together
4) Update subversion to now hold the "new" version of ffmpeg
5) Delete ffmpeg.old directory tree

Ответы [ 5 ]

11 голосов
/ 11 октября 2008

Вы можете взглянуть на svnbook и поговорить о ветках поставщиков . Это именно то, что вы пытаетесь достичь

Вы можете использовать svn_load_dirs.pl для замены шагов 1-5, выполненных вручную. svn_load_dirs.pl также будет отслеживать новые, перемещенные или удаленные файлы.

2 голосов
/ 11 октября 2008

У меня такая же ситуация с CMake, где я проверяю бинарный выпуск win32 в каталоге нашего поставщика:

branches/
trunk/
vendor/
    cmake/
        cmake-2.6.0/
        cmake-2.6.1/
        cmake-2.6.2/
        ...

Затем я использую svn: externals для ссылки на версию CMake, которую я использую. Упрощает тестирование обновления до новых версий, а также понятно, какую версию CMake я использую.

1 голос
/ 11 октября 2008

Все правильно, за исключением того, что вам не нужны шаги 1 и 5 - если шаг 3 не пройден, верните изменения, используя функциональность svn revert.

0 голосов
/ 11 октября 2008

Если в некоторых проектах вендоров также используется Subversion, вы можете добавить свойство svn: externals для родительского каталога вашей ветви / trunk.

Посмотрите книгу SVN для более подробной информации.

0 голосов
/ 11 октября 2008

Я думаю, у вас есть два варианта.

A)

  1. SVN Удалить все файлы.
  2. Получить ток и заставить его работать.
  3. SVN Добавить все файлы.

Pro: убедитесь, что дополнительные файлы не хранятся, если они отсутствуют в последней версии.

Con: Может занять много времени.

B)

  1. Загрузите и установите новую версию поверх старой.
  2. Заставь это работать.
  3. SVN добавляет любые новые файлы.

Pro: вы можете увидеть, что изменилось в файлах инструмента.

Con: Может закончиться беспорядком. В зависимости от инструмента перезапись может привести к ошибкам.

...