SlideShare una empresa de Scribd logo
1 de 17
Управление версиями для
нескольких команд в
корпоративных проектах
Автор: Дубовецкий Руслан
Харьков 2014 Artezio
Проблемы
• Конфликты при «коммите»
• Затирание чужих изменений
• Остановка корректной работы команды при нерабочем коде в
ветках
• Проблема согласования версий модулей и компонентов в ветках
• Сложная структура веток
• Ненужные ветки
• Дублирование веток
Харьков 2014 Artezio
Цель
• Быстрое информирование об ошибках
• Конфликты кода и проблемы интеграции должны обнаруживаться как
можно раньше.
• Лучше исправлять небольшие ошибки часто, чем большие проблемы
редко.
• Постоянная готовность к поставке
• Даже после действительно плохой итерации должно быть хоть что-то, что
можно выпустить.
• Простота
• Все члены команды будут ежедневно использовать эту схему, поэтому
правила должны быть простыми и понятными.
Харьков 2014 Artezio
Концепция шаблона управления
версиями
Для эффективного управления версиями ПО, стоит разделить
проект на ветки по командам(есть еще по модулям):
• Главная ветка Trunk(код всегда готов к релизу).
• Рабочие ветки команд.
• Ветки релизов.
Харьков 2014 Artezio
// Правило: Каждая ветвь (даже основной ствол, т.е. trunk)
имеет владельца и политику
Главная ветка Trunk
Готово к поставке - означает, что интеграционные,
модульные тесты пройдены и код не блокирует,
уже работающую, функциональность
Харьков 2014 Artezio
// Правило: Не совмещайте несколько циклов разработки в одной ветве
Публикация из рабочей ветки в Trunk
Харьков 2014 Artezio
// Рекомендация: Создавайте новую ветвь только тогда, когда
вы хотите залить код в систему контроля версий , и не
существует ветви, которую можно для этого использовать, не
нарушив ее политику
При публикация в trunk идет полная
синхронизация двух веток.
Проблемы синхронизации с Trunk
1. Что если наша команда параллельно реализует несколько задач?
2. Что если другие команды тоже делают публикацию в trunk?
Харьков 2014 Artezio
Возможные решения параллельной
разработки в команде
• Не разрабатывать параллельно. Постараться сфокусировать работу
всей команды на одной задаче.
• В командной ветке может находиться только одно не готовое задание.
Все остальные могут отправить только готовые задачи.
• В командной ветке может находиться только одно не готовое задание.
Все остальные могут отправлять части задания, которые никак не
повлияют на текущую задачу.
Харьков 2014 Artezio
// Правило: Тот кто вносит изменения в trunk отвечает за то, что он
остается готовым к поставке, включая всю предыдущую функциональность!
// Правило: Постоянно синхронизируйте ваш код с рабочей ветвью (так
часто, как это возможно)
Правила работы в командной ветке
• Тот кто работает над самой приоритетной задачей – Король, или ведущий разработчик.
• Все остальные в команде – Слуги, или просто разработчики.
• Вы хотите быть Королем. Постарайтесь найти способ принять участие в работе над
самой приоритетной задачей.
• Когда Королю нужна помощь, Слуги немедленно предлагают ему свои услуги.
• Слуга не может мешать Королю.
• Слуга не может заливать в рабочую ветвь код, не готовый к поставке. Король может
заливать в ветку команды все, что он хочет.
• Как только готова самая приоритетная задача, Королем становится тот, кто реализует
следующую по приоритетности задачу.
Харьков 2014 Artezio
Подхват изменений из trunk
День в команде начинается с того, что выбранный член команды
должен подхватывать изменения из trunk в рабочую ветку
команды. Любые конфликты версий считаются первостепенными
задачами.
Харьков 2014 Artezio
// Правило: Сливайте код из trunk-а в вашу рабочую ветвь каждый день
// Правило: Решайте конфликты в ветви, которая менее стабильна
Одновременная синхронизация с trunk
// Правило: Заливайте код из вашей рабочей ветви в trunk на
регулярной основе, например, каждый раз, когда готово задание. Не
ждите до конца итерации!
// Побочный эффект: Побеждает тот, кто первым заливает код в
trunk!
Харьков 2014 Artezio
Ветви релизов
Харьков 2014 Artezio
// Правило: Сливайте код в trunk по иерархии создания веток
Общая картина
Харьков 2014 Artezio
// Правило: Делаем слияние сверху вниз, копируем снизу вверх
// Правило: Всегда принимайте стабилизирующие изменения.
Никогда не навязывайте дестабилизирующие изменения
Subversion механизмы для реализации шаблона управления
версиями
Харьков 2014 Artezio
Mercurial децентрализованное
управление версиями
Харьков 2014 Artezio
GIT
реализация
шаблона
управления
версиями
Харьков 2014 Artezio
Вопросы
Контакты: andrus.god@gmail.com
Ресурсы:
• http://www.infoq.com/articles/agile-version-control
• http://agilerussia.ru/practices/version-control-with-multiple-teams/
• http://scrum.org.ua/wp-content/uploads/2008/12/scrum_xp-from-the-
trenches-rus-final.pdf
• http://nvie.com/posts/a-successful-git-branching-model/
• http://habrahabr.ru/post/106912/
• http://hginit.com/
• http://1drv.ms/NaYdpD
Харьков 2014 Artezio

Más contenido relacionado

La actualidad más candente

Презентация Git-flow (на русском)
Презентация Git-flow (на русском)Презентация Git-flow (на русском)
Презентация Git-flow (на русском)Sergey Chudakov
 
Стажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверамиСтажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверами7bits
 
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...ScrumTrek
 
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...Unigine Corp.
 
Обзор Haxe & OpenFl
Обзор Haxe & OpenFlОбзор Haxe & OpenFl
Обзор Haxe & OpenFlDevOWL Meetup
 
Знакомство с WebAssembly
Знакомство с WebAssemblyЗнакомство с WebAssembly
Знакомство с WebAssemblyNikita Zimin
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityDefconRussia
 
1. RAD Studio Tokyo What's new Введение (К.Раннев)
1. RAD Studio Tokyo What's new Введение (К.Раннев)1. RAD Studio Tokyo What's new Введение (К.Раннев)
1. RAD Studio Tokyo What's new Введение (К.Раннев)sandy97
 
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Store2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Storesandy97
 
Кроссплатформенная разработка на Haxe
Кроссплатформенная разработка на HaxeКроссплатформенная разработка на Haxe
Кроссплатформенная разработка на HaxeEugene Veretennikov
 
About emacs
About emacsAbout emacs
About emacsjskonst
 
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.RuSecurity Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.RuMail.ru Group
 

La actualidad más candente (20)

Презентация Git-flow (на русском)
Презентация Git-flow (на русском)Презентация Git-flow (на русском)
Презентация Git-flow (на русском)
 
Стажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверамиСтажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверами
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
 
Net framework
Net frameworkNet framework
Net framework
 
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
 
операционные системы
операционные системыоперационные системы
операционные системы
 
Обзор Haxe & OpenFl
Обзор Haxe & OpenFlОбзор Haxe & OpenFl
Обзор Haxe & OpenFl
 
Приложения в плагинах
Приложения в плагинахПриложения в плагинах
Приложения в плагинах
 
Знакомство с WebAssembly
Знакомство с WebAssemblyЗнакомство с WebAssembly
Знакомство с WebAssembly
 
Операционные системы 2
Операционные системы 2Операционные системы 2
Операционные системы 2
 
Telegram Bot
Telegram BotTelegram Bot
Telegram Bot
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
 
1. RAD Studio Tokyo What's new Введение (К.Раннев)
1. RAD Studio Tokyo What's new Введение (К.Раннев)1. RAD Studio Tokyo What's new Введение (К.Раннев)
1. RAD Studio Tokyo What's new Введение (К.Раннев)
 
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Store2 Продуктивность работы в IDE; Разработка для Windows 10 Store
2 Продуктивность работы в IDE; Разработка для Windows 10 Store
 
Кроссплатформенная разработка на Haxe
Кроссплатформенная разработка на HaxeКроссплатформенная разработка на Haxe
Кроссплатформенная разработка на Haxe
 
About emacs
About emacsAbout emacs
About emacs
 
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.RuSecurity Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
 

Destacado (20)

CCNA_Course Certificate
CCNA_Course CertificateCCNA_Course Certificate
CCNA_Course Certificate
 
Accreditation Certificate (SBG)
Accreditation Certificate (SBG)Accreditation Certificate (SBG)
Accreditation Certificate (SBG)
 
SizingUpFallProtection600dpi
SizingUpFallProtection600dpiSizingUpFallProtection600dpi
SizingUpFallProtection600dpi
 
LA1001 Poster_16-links
LA1001 Poster_16-linksLA1001 Poster_16-links
LA1001 Poster_16-links
 
MBA Certificate
MBA CertificateMBA Certificate
MBA Certificate
 
Mygon Recommendation Letter
Mygon Recommendation LetterMygon Recommendation Letter
Mygon Recommendation Letter
 
FCCM KYC Certificate
FCCM KYC CertificateFCCM KYC Certificate
FCCM KYC Certificate
 
1471895969-111518513 - Diploma in Blogging & Content Marketing - Denis Venter
1471895969-111518513 - Diploma in Blogging & Content Marketing - Denis Venter1471895969-111518513 - Diploma in Blogging & Content Marketing - Denis Venter
1471895969-111518513 - Diploma in Blogging & Content Marketing - Denis Venter
 
Video - Jorge Lanata - Desarrollo de la primer transmisión inmersiva de Radio...
Video - Jorge Lanata - Desarrollo de la primer transmisión inmersiva de Radio...Video - Jorge Lanata - Desarrollo de la primer transmisión inmersiva de Radio...
Video - Jorge Lanata - Desarrollo de la primer transmisión inmersiva de Radio...
 
7 Sajf 2016
7 Sajf 20167 Sajf 2016
7 Sajf 2016
 
CAP
CAPCAP
CAP
 
Central plaza in foco
Central plaza in focoCentral plaza in foco
Central plaza in foco
 
Hancock Today Magazine
Hancock Today MagazineHancock Today Magazine
Hancock Today Magazine
 
C2C
C2CC2C
C2C
 
Paper Double Handle Tools
Paper Double Handle ToolsPaper Double Handle Tools
Paper Double Handle Tools
 
Cps 01 14 baixa
Cps 01 14 baixaCps 01 14 baixa
Cps 01 14 baixa
 
Mosk_Kunst_Inst_Diplom
Mosk_Kunst_Inst_DiplomMosk_Kunst_Inst_Diplom
Mosk_Kunst_Inst_Diplom
 
FTI Certificate
FTI CertificateFTI Certificate
FTI Certificate
 
RR New logo 2
RR New logo 2RR New logo 2
RR New logo 2
 
Manual de conduta nas mídias sociais sesdf
Manual de conduta nas mídias sociais   sesdfManual de conduta nas mídias sociais   sesdf
Manual de conduta nas mídias sociais sesdf
 

Similar a Svn rule in_team_project

Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustMichael Pankov
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на DockerМихаил Бакулин
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинIT61
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned Alexander Syrotenko
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеDenis Chistyakov
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Vladimir Bakhov
 
Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin
 

Similar a Svn rule in_team_project (20)

Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Sonar quality
Sonar qualitySonar quality
Sonar quality
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Lab5
Lab5Lab5
Lab5
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
Lirc или домашний медиацентр
Lirc или домашний медиацентрLirc или домашний медиацентр
Lirc или домашний медиацентр
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)
 
Invisible
InvisibleInvisible
Invisible
 

Svn rule in_team_project

  • 1. Управление версиями для нескольких команд в корпоративных проектах Автор: Дубовецкий Руслан Харьков 2014 Artezio
  • 2. Проблемы • Конфликты при «коммите» • Затирание чужих изменений • Остановка корректной работы команды при нерабочем коде в ветках • Проблема согласования версий модулей и компонентов в ветках • Сложная структура веток • Ненужные ветки • Дублирование веток Харьков 2014 Artezio
  • 3. Цель • Быстрое информирование об ошибках • Конфликты кода и проблемы интеграции должны обнаруживаться как можно раньше. • Лучше исправлять небольшие ошибки часто, чем большие проблемы редко. • Постоянная готовность к поставке • Даже после действительно плохой итерации должно быть хоть что-то, что можно выпустить. • Простота • Все члены команды будут ежедневно использовать эту схему, поэтому правила должны быть простыми и понятными. Харьков 2014 Artezio
  • 4. Концепция шаблона управления версиями Для эффективного управления версиями ПО, стоит разделить проект на ветки по командам(есть еще по модулям): • Главная ветка Trunk(код всегда готов к релизу). • Рабочие ветки команд. • Ветки релизов. Харьков 2014 Artezio // Правило: Каждая ветвь (даже основной ствол, т.е. trunk) имеет владельца и политику
  • 5. Главная ветка Trunk Готово к поставке - означает, что интеграционные, модульные тесты пройдены и код не блокирует, уже работающую, функциональность Харьков 2014 Artezio // Правило: Не совмещайте несколько циклов разработки в одной ветве
  • 6. Публикация из рабочей ветки в Trunk Харьков 2014 Artezio // Рекомендация: Создавайте новую ветвь только тогда, когда вы хотите залить код в систему контроля версий , и не существует ветви, которую можно для этого использовать, не нарушив ее политику При публикация в trunk идет полная синхронизация двух веток.
  • 7. Проблемы синхронизации с Trunk 1. Что если наша команда параллельно реализует несколько задач? 2. Что если другие команды тоже делают публикацию в trunk? Харьков 2014 Artezio
  • 8. Возможные решения параллельной разработки в команде • Не разрабатывать параллельно. Постараться сфокусировать работу всей команды на одной задаче. • В командной ветке может находиться только одно не готовое задание. Все остальные могут отправить только готовые задачи. • В командной ветке может находиться только одно не готовое задание. Все остальные могут отправлять части задания, которые никак не повлияют на текущую задачу. Харьков 2014 Artezio // Правило: Тот кто вносит изменения в trunk отвечает за то, что он остается готовым к поставке, включая всю предыдущую функциональность! // Правило: Постоянно синхронизируйте ваш код с рабочей ветвью (так часто, как это возможно)
  • 9. Правила работы в командной ветке • Тот кто работает над самой приоритетной задачей – Король, или ведущий разработчик. • Все остальные в команде – Слуги, или просто разработчики. • Вы хотите быть Королем. Постарайтесь найти способ принять участие в работе над самой приоритетной задачей. • Когда Королю нужна помощь, Слуги немедленно предлагают ему свои услуги. • Слуга не может мешать Королю. • Слуга не может заливать в рабочую ветвь код, не готовый к поставке. Король может заливать в ветку команды все, что он хочет. • Как только готова самая приоритетная задача, Королем становится тот, кто реализует следующую по приоритетности задачу. Харьков 2014 Artezio
  • 10. Подхват изменений из trunk День в команде начинается с того, что выбранный член команды должен подхватывать изменения из trunk в рабочую ветку команды. Любые конфликты версий считаются первостепенными задачами. Харьков 2014 Artezio // Правило: Сливайте код из trunk-а в вашу рабочую ветвь каждый день // Правило: Решайте конфликты в ветви, которая менее стабильна
  • 11. Одновременная синхронизация с trunk // Правило: Заливайте код из вашей рабочей ветви в trunk на регулярной основе, например, каждый раз, когда готово задание. Не ждите до конца итерации! // Побочный эффект: Побеждает тот, кто первым заливает код в trunk! Харьков 2014 Artezio
  • 12. Ветви релизов Харьков 2014 Artezio // Правило: Сливайте код в trunk по иерархии создания веток
  • 13. Общая картина Харьков 2014 Artezio // Правило: Делаем слияние сверху вниз, копируем снизу вверх // Правило: Всегда принимайте стабилизирующие изменения. Никогда не навязывайте дестабилизирующие изменения
  • 14. Subversion механизмы для реализации шаблона управления версиями Харьков 2014 Artezio
  • 17. Вопросы Контакты: andrus.god@gmail.com Ресурсы: • http://www.infoq.com/articles/agile-version-control • http://agilerussia.ru/practices/version-control-with-multiple-teams/ • http://scrum.org.ua/wp-content/uploads/2008/12/scrum_xp-from-the- trenches-rus-final.pdf • http://nvie.com/posts/a-successful-git-branching-model/ • http://habrahabr.ru/post/106912/ • http://hginit.com/ • http://1drv.ms/NaYdpD Харьков 2014 Artezio