SlideShare a Scribd company logo
1 of 23
eleks.comeleks.com
Version Control
Tools overview. Branching strategy.
Як виглядає робота над проектом?*
Пишеш
код
Зберігаєш
Вносиш
зміни
Зберігаєш
зміни
*для 1го девелопера
*для команди
Як виглядає робота над проектом?*
Ще одна проблема
Чи можливі подорожі в минуле?
Як задати координати?
Покоління систем контролю версій
1
• Паралельна розробка обмежувалась блокуваннями (lock) файлів.
• Лише одна людина могла працювати над файлом в будь-який момент часу.
• Приклади: RCS, SCCS
2
• Набагато поблажливіші до одночасних модифікацій. Одна примітка:
• Користувачі повинні об’єднати свої зміни з іншими перед їхньою фіксацією
• Приклади: CVS, SourceSafe, Subversion (SVN), Team Foundation Server (TFS)
3
• Об’єднання (merge) та фіксація (commit) відокремлені
• Приклади: Bazaar, Git, Mercurial
Централізовані СКВ
Сервер
Репозиторій
Робоча копія
PC#1
Робоча копія
PC#2
Робоча копія
PC#3
Commit
Update
Apache Subversion (SVN)
• Кожен коміт – атомарна транзакція
• Зберігається повна історія змін файлів та каталогів
• Підтримка розгалужень (branching)
• Створення нових гілок – дешева по ресурсам
операція
• Однаково ефективна робота як з текстовими, так і з
бінарними файлами
• Підтримка блокування (locking) файлів
• Вага репозиторію пропорційна вазі змін, а не вазі
самих даних
• Підтримка автоматичного злиття
• Підтримка тегів
Команди SVN
Create
Checkout
Update
Commit
Add
Edit
Rename/Move
Delete
Cleanup
Команди SVN
Status
Diff
Revert
Log
Tag
Branch
Switch
Merge
Resolve
Lock
Merge conflicts
Це - маркери конфліктів.
Вони з’являються, коли ви
знаходитесь в режимі об’єднання,
а СКВ, з якихось причин, не
змогла автоматично об’єднати
зміни.
Якісь дивні символи в коді..
start =
expression
validchar =
[0-9a-zA-Z_?!+-=@#$%^&*/.]
integer =
<<<<<<< HEAD
digits:[0-9]+
{ return digits.join("");
}
=======
sign:"-"* digits:[0-9]+
{ return sign +
digits.join(""); }
>>>>>>> gh-pages
Розподілені СКВ
Сервер
Репозиторій
Робоча копія
PC#1
Репозиторій
Робоча копія
PC#2
Репозиторій
Робоча копія
PC#3
Репозиторій
Pull
Push
Git
• Успадковує багато можливостей централізо-
ваних СКВ
• Зберігає дані у вигляді знімків, а не змін до
файлів
• Більшість операцій локальні (=швидкі), можна
переглядати історію та вносити зміни до свого
локального репозиторію без з’єднання з сервером
• Вбудована на нижчому рівні підтримка цілісності
• Три основні стани файлів в Git-репозиторії:
committed, modified, staged
• Наявність команд на всі випадки життя
Деякі команди Git
Clone
Pull
Push
Fetch
Config
Stash
Rebase
Reset
Centralized workflow
Update
Додавання
змін
Фікси
Merge,
Resolve
Commit
Feature Branch Workflow
GitFlow Model
Важливість коментування
Knowledge is having the right answer.
Intelligence is asking the right question.
- Anonymous
“
Рекомендована література
1. Eric Sink «Version Control by Example» («The Hitchiker's
Guide to Distributed Version Control»)
2. Scott Chacon and Ben Straub «Pro Git»
3. Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato
«Version Control with Subversion»
Version control

More Related Content

What's hot

G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2eleksdev
 
07 Database Access
07 Database Access07 Database Access
07 Database Accesseleksdev
 
12 Architecture
12 Architecture12 Architecture
12 Architectureeleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentationeleksdev
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOPeleksdev
 
11 web services
11 web services11 web services
11 web serviceseleksdev
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styleseleksdev
 
System programing module 2
System programing module 2System programing module 2
System programing module 2Andrii Hladkyi
 
System programing module 1
System programing module 1System programing module 1
System programing module 1Andrii Hladkyi
 
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...Igor Bronovskyy
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
System programing module 3
System programing module 3System programing module 3
System programing module 3Andrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basicseleksdev
 

What's hot (20)

G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
 
07 Database Access
07 Database Access07 Database Access
07 Database Access
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
 
11 web services
11 web services11 web services
11 web services
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
 
Xdebug (ukr)
Xdebug (ukr)Xdebug (ukr)
Xdebug (ukr)
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
 
Wcf module 3.3
Wcf module 3.3Wcf module 3.3
Wcf module 3.3
 
Sql pl
Sql plSql pl
Sql pl
 
Wcf module 3.1
Wcf module 3.1Wcf module 3.1
Wcf module 3.1
 
Design patterns part 1
Design patterns part 1Design patterns part 1
Design patterns part 1
 

Viewers also liked

SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joinseleksdev
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Roleeleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkpeleksdev
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Roleeleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operatoreleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n editedeleksdev
 
Frontend basics
Frontend basicsFrontend basics
Frontend basicseleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...eleksdev
 
sql introduction
sql introductionsql introduction
sql introductioneleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Roleeleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Roleeleksdev
 
Mvvw patterns
Mvvw patternsMvvw patterns
Mvvw patternseleksdev
 
#4 code quality
#4 code quality#4 code quality
#4 code qualityeleksdev
 
#2 integration + ui tests
#2 integration + ui tests#2 integration + ui tests
#2 integration + ui testseleksdev
 
Code Practices
Code PracticesCode Practices
Code Practiceseleksdev
 
Design patterns
Design patternsDesign patterns
Design patternseleksdev
 
Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summaryeleksdev
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summaryeleksdev
 

Viewers also liked (20)

SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
 
Frontend basics
Frontend basicsFrontend basics
Frontend basics
 
tsql
tsqltsql
tsql
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
sql introduction
sql introductionsql introduction
sql introduction
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
 
Mvvw patterns
Mvvw patternsMvvw patterns
Mvvw patterns
 
#4 code quality
#4 code quality#4 code quality
#4 code quality
 
#2 integration + ui tests
#2 integration + ui tests#2 integration + ui tests
#2 integration + ui tests
 
Code Practices
Code PracticesCode Practices
Code Practices
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summary
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summary
 

Similar to Version control

"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii NasinnykFwdays
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET МіфиSerhiy Kalinets
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...Andrii Podanenko
 
Сетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятияСетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятияOlexander Kovalenko
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsPavlo Iuriichuk
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoGlobalLogic Ukraine
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk "Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk Fwdays
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIПупена Александр
 
Masters Academy: Трендові інструменти розробки
Masters Academy: Трендові інструменти розробкиMasters Academy: Трендові інструменти розробки
Masters Academy: Трендові інструменти розробкиMasters Academy
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
Kardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessKardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessLviv Startup Club
 
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019GoQA
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаHRdepartment
 
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps_Fest
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігаціяПупена Александр
 

Similar to Version control (20)

"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET Міфи
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
 
Сетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятияСетевые технологии для организации работы предприятия
Сетевые технологии для организации работы предприятия
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
 
ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk "Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
MOM
MOMMOM
MOM
 
Masters Academy: Трендові інструменти розробки
Masters Academy: Трендові інструменти розробкиMasters Academy: Трендові інструменти розробки
Masters Academy: Трендові інструменти розробки
 
Інші підсистеми
Інші підсистемиІнші підсистеми
Інші підсистеми
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
Kardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessKardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocess
 
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
 
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
 
Wcf module 1
Wcf module 1Wcf module 1
Wcf module 1
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігація
 

More from eleksdev

Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practiceseleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in androideleksdev
 
Hello android world
Hello android worldHello android world
Hello android worldeleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors APIeleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basicseleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 apieleksdev
 

More from eleksdev (7)

Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
 
Communication in android
Communication in androidCommunication in android
Communication in android
 
Hello android world
Hello android worldHello android world
Hello android world
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
 
Uml
UmlUml
Uml
 

Version control

Editor's Notes

  1. https://www.quora.com/What-is-the-difference-between-version-control-and-source-control
  2. Спрощена схема. Повна версія: http://nvie.com/img/git-model@2x.png
  3. Ще було б кул додати слайд про ігнори, порівняльну таблицю Git та SVN. Декілька слайдів про інші сорс контроли