Теги Subversion и ветки

Кто-нибудь придумал лучшую технику управления тегами и ветвями в Subversion, чем обычно рекомендуется (параллельные каталоги, называемые «тегами» и «ветвями»)?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
2 512
3

Ответы 3

Единственное, что вы можете делать помимо параллельных каталогов, когда у вас есть ветки, - это выполнять SVN-переключатель между двумя ветвями, когда вы хотите работать с одним или другим. Возможно, вам следует пояснить, что вы хотите «улучшить» в этой системе, и люди могли бы внести свои предложения.

Использование пространства имен репозитория для передачи такой информации, как ветки / теги / и т. д., По сути, является моделью SVN; если вам нужна другая модель, вы, вероятно, действительно хотите что-то другое, кроме SVN.

Отсутствие метаданных, таких как метки в стиле CVS в SVN, является намеренным дизайнерским решением. Независимо от того, какое расположение ветвей / тегов / проектов вы выберете в своем дереве, все это сведется к наборам параллельных каталогов для каждой цели. Остается просто выбрать правильную стратегию именования для ваших веток и тегов, чтобы вам было понятнее.

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

Мы используем стратегию «ствол, тег, ветвь и поток».

«Ствол» - это место, где должна быть размещена самая последняя версия того, что сейчас находится в производстве.

«Тег» - это место, где происходит «копирование в», когда поток завершен, и нам нужно сохранить статус потока для целей архивирования. Это также позволяет продолжить разработку с определенной точки.

«Ветвь» - это когда должно произойти что-то совершенно отличное от основной разработки. Обычно ветки бывают очень редко.

«Потоки» - это то, что мы чаще всего используем. Поток разработки - это фокус, основанный на задачах, например поток для конкретного исправления или усилий по разработке (например, завершения запросов на изменение). Потокам разрешено сливаться друг с другом, но разные потоки ранжируются на основе стратегии svn. Например, у нас был один поток для выпуска cr, а другой поток для выпуска выпусков поддержки приложений. Поскольку поток CR должен был включать исправления поддержки приложений в дополнение к собственным изменениям, он получил более высокий рейтинг. Потоки с более высоким рейтингом имеют более низкие потоки (по мере необходимости), объединенные в них. Наконец, поток становится готовым к производству. Он маркируется, а затем «копируется в» транк, который затем используется (обычно, хотя иногда используются теги) в качестве основы для дальнейших потоков.

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

Другие вопросы по теме