#svn #branch #parent #ignore
#svn #ветка #родитель #игнорировать
Вопрос:
Я хочу, чтобы определенные файлы/папки контролировались версиями на определенных ветвях «уровня» и ниже (имеется в виду ветви, которые ответвляются от этой ветви), но хочу игнорировать их вверх. Могу ли я добиться этого?
Перефразируя: У меня есть несколько проектов, которые довольно похожи, но отличаются некоторыми файлами (1-2 файла). Я хотел бы иметь основную ветвь для всех общих вещей и иметь ветви для сохранения особого поведения. Таким образом, я мог бы легко объединить исправления между проектами с помощью общего предка, а также управлять их особыми аспектами (и версиями). Достижимо ли это?
Пример:
- Root (не полный проект):
- 1
- 2
- Проект А (родитель: Корень):
- 1
- 2
- q
- Проект B (родитель: Root):
- 1
- 2
- w
Ответ №1:
В конце концов я остановился на «внешнем подходе»:
Все общие материалы находятся в master, все проекты ветвятся от master, и добавлена внешняя папка с относительным путем в репозитории. Особенности проекта помещаются в эту папку, которая является еще одним репо, доступным только в их соответствующем репо проекта.
master project1 |-specific |-spec |-trunk (parent is master) |-spec: external ../specific/spec project2 |-specific |-spec |-trunk (parent is master) |-spec: external ../specific/spec
Таким образом, все слияния между общими частями возможны, и никакие конкретные компоненты проекта не попадают в другие проекты. Побочный эффект: мастер не может быть использован сам по себе.