Изменить сторонний код в Subversion - PullRequest
2 голосов
/ 04 мая 2010

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

В настоящее время мой репозиторий выглядит следующим образом:

  • / 3rdParty
  • / CompanyA
  • / CompanyAProduct1
  • / v1_0
  • / v1_1
/ MyProductA
  • / ветви
  • / теги
  • / багажник
  • / import
  • / export
  • / source

Через svn: externals Я сопоставляю все необходимое (lib, dll или code) в папку импорта.Теперь я хотел бы изменить файлы в папке импорта, но это также изменит исходные источники (насколько я знаю).Как лучше всего иметь измененную версию в моей папке импорта, но исходные источники остаются неизменными?Должен ли я сделать ветку стороннего кода?Но затем я должен обновлять исходные коды для каждого нового выпуска.

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Прочтите раздел Ветви поставщика Красной книги Subversion ( Контроль версий с Subversion ):

http://svnbook.red -bean.com / о / 1,5 / svn.advanced.vendorbr.html

Общая процедура управления филиалом поставщика
Управление ветвями поставщиков обычно работает следующим образом: сначала вы создаете каталог верхнего уровня (например, / vendor) для хранения веток поставщиков. Затем вы импортируете сторонний код в подкаталог этого каталога верхнего уровня. Затем вы копируете этот подкаталог в свою основную ветку разработки (например, / trunk) в соответствующем месте. Вы всегда вносите свои локальные изменения в основную ветку разработки. С каждым новым выпуском кода, который вы отслеживаете, вы переносите его в ветку поставщика и объединяете изменения в / trunk, разрешая любые конфликты, возникающие между локальными изменениями и исходными изменениями. ... (См. Остальную часть главы Ветви поставщика в главе для конкретных команд и полного примера.)

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

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

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

0 голосов
/ 04 мая 2010

Да, вы должны создать ветку стороннего кода и внести необходимые изменения. Если у вас есть обновление стороннего производителя, вы можете обновить новый выпуск, просто используя объединение.

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