Каков наилучший способ управления обновлением сторонних компонентов в проектах Subversion? - PullRequest
1 голос
/ 13 сентября 2009

У меня часто бывают проекты на основе svn, которые включают сторонние компоненты, такие как редактор TinyMCE (WYSIWYG в браузере). Это включает в себя десятки папок с возможно сотнями файлов.

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

Очевидно, что это не сработает, потому что при копировании поверх я бы уничтожил все существующие папки .svn, вложенные в рабочую копию.

Обновление всех файлов вручную займет несколько часов.

Есть ли хороший способ справиться с этим с помощью SVN?

В качестве альтернативы, есть ли какие-либо инструменты (на linux или OS X), которые помогли бы мне легче выполнять ручное копирование?

Ответы [ 5 ]

2 голосов
/ 13 сентября 2009

Я не понял: «Очевидно, это не сработает, потому что при копировании поверх я бы уничтожил все существующие папки .svn, вложенные в рабочую копию». Какую ОС вы используете?

Я использую веб-сервер Linux для своего сервера SVN и машину Windows для работы. Нет такой вещи, как «удаление» папок .svn: вы просто копируете файлы в извлеченный каталог, и, поскольку они изменены, я просто фиксирую их, используя TortoiseSVN.

Это не лучший способ сохранить вашу структуру. Но это работает.

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

svnrepositories
  myprojects
    myprojet
  third-party
    tinymce
      1.3

И их, используйте свойство svn: externals , как указано BrianLy .

Вы можете просто указать на внешний ресурс в интернете. Но помните, что недостатком является то, что ресурс может быть отключен, и вам необходим доступ в Интернет.

1 голос
/ 13 сентября 2009

«Лучший способ управлять обновлением сторонних компонентов в Subversion»?

Ветви поставщика . В качестве бонуса вы можете изменить код стороннего компонента, и эти модификации будут жить после обновлений благодаря слиянию.

1 голос
/ 13 сентября 2009

Думаю, вам стоит взглянуть на свойство svn: externals .

0 голосов
/ 14 июня 2011

Включение версии библиотеки в путь у меня работает. Таким образом, чтобы обновить версию, вы просто удаляете старую версию, добавляете новую и указываете ссылки на новый путь.

$ svn del vendor/tinymce-3.4.2
$ svn add vendor/tinymce-3.4.3
$ # edit references to point to vendor/tinymce-3.4.3

Но если вы хотите внести изменения в библиотеку, я бы выбрал ветки поставщиков, прокомментированные выше.

0 голосов
/ 13 сентября 2009

используйте svn: externals, включая параметр блокировки редакции -r {REV.NR.}, Который гарантирует, что вы не будете своевременно получать обновления от svn-репозитория сторонних поставщиков.

Затем вы можете в свое время обновить до последней версии стороннего компонента, просто установив для параметра -r {REV.NR.} Последнюю версию внешнего репозитория.

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