2012-04-10 3 views
0

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

В настоящее время проект разделен на ярусы. Это веб-проект и состоит из уровня доступа к данным, логического уровня бизнес/домена и веб-уровня (и множества других проектов уровня приложений, таких как службы, которые находятся в домене).

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

Вопрос часть 1

Есть ли лучшая альтернатива использованию рабочих деревьев внутри respository для каждого уровня?

Что я рассмотрел:

  • Сложив все в одну ветвь жира/рабочего дерева (я сказал это нарочно избежать, из-за необходимости, чтобы проверить все). Разработчики создают свои собственные локальные настройки, проверяя подмножества нескольких репозиториев. Например, если я работаю над одной из служб, я проверяю службу, бизнес-уровень и уровень доступа к данным в локальном каталоге. Тем не менее, в текущей настройке я могу проверить приложение верхнего уровня, которое не влияет ни на что другое, внесите в него изменения и верните его, не проверяя весь репозиторий, размер которого почти 1 ГБ.

Что я хотел бы исправить:

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

Вопрос часть 2

Если я разветвляюсь один из этих уровней для филиала выпуска, и обнаружил, что изменение в корне отрасли должно быть в этом выпуске, как я нажимаю только требуются ли изменения в филиале?

Таким образом, предполагая, что структура одного рабочего дерева (или, возможно, реальной ветки) существует для каждого из этих проектов, мы хотели бы иметь ветвь для каждого из них, которые содержат версию для конкретной версии. Таким образом, в дереве веб-сайта есть ветвь site_rls1, которая инкапсулирует состояние разработки для этой конкретной версии. Общее развитие для более позднего выпуска будет происходить одновременно.Поэтому, если один файл из многих событий имеет отношение к этой версии, я хотел бы объединить этот единственный файл в мою ветку релиза. Каков предпочтительный способ сделать это. Насколько я понимаю, Bazaar не поддерживает слияние/вытягивание отдельных файлов.

Что я рассмотрел:

  • Просто положить файлы, которые я хочу в моей локальной кассе филиала выпуска и совершение

Что я хотел бы исправить:

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

Любые мысли оценили.

ответ

2

# 1 Есть два плагина для управления нескольких зависимых Bzr репозиториями:

  1. https://launchpad.net/bzr-externals
  2. https://launchpad.net/bzr-scmproj

Они имеют разные подходы и подходят к различным ситуациям.

Возможно, вы также захотите решить эту проблему на уровне сборки. Используйте систему непрерывной интеграции, такую ​​как Дженкинс, и систему разрешения зависимостей, такую ​​как Айви или Мейвен. QA должно быть выполнено с использованием автоматических сборок из этой системы, так что ошибки, которые подаются, могут ссылаться на конкретный номер сборки, который должен включать в свои журналы версии различных зависимостей, используемых для создания этой сборки.


# 2 Существует на самом деле не способ сделать это слияние. Базар не отслеживает слияния черешни (пока). Лучшим подходом было бы сделать исходное исправление в ветви релиза, а затем объединить его обратно в родительский.

+0

Я предполагаю, что я действительно хочу для # 1 - вложенные деревья. http://wiki.bazaar.canonical.com/NestedTreesDesign - хотя это пока не поддерживается. Я думаю, что наш непрерывный процесс интеграции может помочь решить проблему. Для # 2 - да, оригинальное исправление должно быть сделано в правильной ветке, я беспокоюсь, что изменения, сделанные в одном филиале, могут потребоваться еще на несколько недель спустя. Если эта ветка происходит, я теряю всю эту информацию. Но да, я думаю, вы правы, что слияние не может быть сделано. –

Смежные вопросы