SlideShare a Scribd company logo
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

PPTX
.NET Platform. C# Basics
eleksdev
 
PPTX
Advanced c sharp part 3
eleksdev
 
PPTX
DAL
eleksdev
 
PPTX
10 asp.net
eleksdev
 
PPTX
Aspnet core
eleksdev
 
PPTX
Rpc
eleksdev
 
PPTX
Web service lecture
eleksdev
 
PPTX
Windows service
eleksdev
 
.NET Platform. C# Basics
eleksdev
 
Advanced c sharp part 3
eleksdev
 
10 asp.net
eleksdev
 
Aspnet core
eleksdev
 
Web service lecture
eleksdev
 
Windows service
eleksdev
 

What's hot (20)

PPTX
G rpc lection1_theory_bkp2
eleksdev
 
PPTX
07 Database Access
eleksdev
 
PPTX
12 Architecture
eleksdev
 
PPTX
Angular. presentation
eleksdev
 
PPTX
08 Exceptions and AOP
eleksdev
 
PPTX
11 web services
eleksdev
 
PDF
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
 
PPTX
Advanced styles
eleksdev
 
PDF
Xdebug (ukr)
Anatoliy Okhotnikov
 
PPTX
System programing module 2
Andrii Hladkyi
 
PPTX
System programing module 1
Andrii Hladkyi
 
PDF
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
Igor Bronovskyy
 
PPTX
System programing module 1. Processes
Andrii Hladkyi
 
PPTX
System programing module 3
Andrii Hladkyi
 
PPTX
System programing module 2. Threads
Andrii Hladkyi
 
PPTX
NoSQL basics
eleksdev
 
PPTX
Wcf module 3.3
Andrii Hladkyi
 
PPT
Sql pl
Halyna Melnyk
 
PPTX
Wcf module 3.1
Andrii Hladkyi
 
PPTX
Design patterns part 1
Victor Matyushevskyy
 
G rpc lection1_theory_bkp2
eleksdev
 
07 Database Access
eleksdev
 
12 Architecture
eleksdev
 
Angular. presentation
eleksdev
 
08 Exceptions and AOP
eleksdev
 
11 web services
eleksdev
 
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
 
Advanced styles
eleksdev
 
Xdebug (ukr)
Anatoliy Okhotnikov
 
System programing module 2
Andrii Hladkyi
 
System programing module 1
Andrii Hladkyi
 
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
Igor Bronovskyy
 
System programing module 1. Processes
Andrii Hladkyi
 
System programing module 3
Andrii Hladkyi
 
System programing module 2. Threads
Andrii Hladkyi
 
NoSQL basics
eleksdev
 
Wcf module 3.3
Andrii Hladkyi
 
Wcf module 3.1
Andrii Hladkyi
 
Design patterns part 1
Victor Matyushevskyy
 
Ad

Viewers also liked (20)

PPTX
SQL Grouping, Joins
eleksdev
 
PPTX
SDLC. PM Role
eleksdev
 
PPTX
Improving rpc bkp
eleksdev
 
PPTX
SDLC. QA Role
eleksdev
 
PPTX
SQL: Indexes, Select operator
eleksdev
 
PPTX
Sql 04n edited
eleksdev
 
PPTX
Frontend basics
eleksdev
 
PPTX
tsql
eleksdev
 
PPTX
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
PPTX
sql introduction
eleksdev
 
PPTX
G rpc lection1
eleksdev
 
PPTX
SDLC. BA Role
eleksdev
 
PPTX
SDLC. UX Role
eleksdev
 
PPTX
Mvvw patterns
eleksdev
 
PPTX
#4 code quality
eleksdev
 
PPTX
#2 integration + ui tests
eleksdev
 
PPTX
Code Practices
eleksdev
 
PPTX
Design patterns
eleksdev
 
PPTX
Unit1 summary
eleksdev
 
PPTX
If unit2 summary
eleksdev
 
SQL Grouping, Joins
eleksdev
 
SDLC. PM Role
eleksdev
 
Improving rpc bkp
eleksdev
 
SDLC. QA Role
eleksdev
 
SQL: Indexes, Select operator
eleksdev
 
Sql 04n edited
eleksdev
 
Frontend basics
eleksdev
 
tsql
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
sql introduction
eleksdev
 
G rpc lection1
eleksdev
 
SDLC. BA Role
eleksdev
 
SDLC. UX Role
eleksdev
 
Mvvw patterns
eleksdev
 
#4 code quality
eleksdev
 
#2 integration + ui tests
eleksdev
 
Code Practices
eleksdev
 
Design patterns
eleksdev
 
Unit1 summary
eleksdev
 
If unit2 summary
eleksdev
 
Ad

Similar to Version control (20)

PPTX
Лекція-Git-репозиторій-робота-з-гілками.pptx
ssuser78fc9e
 
PDF
"Rethinking Continuous Delivery", Andrii Nasinnyk
Fwdays
 
PPTX
Руйнуємо .NET Міфи
Serhiy Kalinets
 
PPTX
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
PPT
Сетевые технологии для организации работы предприятия
Olexander Kovalenko
 
PDF
Global logic tech talk switching to Angular.js
Pavlo Iuriichuk
 
PDF
Павло Юрійчук — Перехід на Angular.js. Howto
GlobalLogic Ukraine
 
PPTX
ASP.Net basics
Victor Matyushevskyy
 
PPTX
Валідація те збереження даних форм..pptx
distupr118
 
PPTX
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
Fwdays
 
PDF
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Пупена Александр
 
PPTX
MOM
Alex Shel
 
PDF
Masters Academy: Трендові інструменти розробки
Masters Academy
 
PDF
Інші підсистеми
Пупена Александр
 
PDF
Oleksandra Apanasenkova: Управління delivery (Частина 2) (UA)
Lviv Startup Club
 
PPTX
Stfalcon QA Meetup 31.01.2020
Stfalcon Meetups
 
PPTX
Kardash victor kardash unisenderprocess
Lviv Startup Club
 
PDF
"Microservices and multitenancy - how to serve thousands of databases in one ...
Fwdays
 
PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
Fwdays
 
PDF
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
QADay
 
Лекція-Git-репозиторій-робота-з-гілками.pptx
ssuser78fc9e
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
Fwdays
 
Руйнуємо .NET Міфи
Serhiy Kalinets
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
Сетевые технологии для организации работы предприятия
Olexander Kovalenko
 
Global logic tech talk switching to Angular.js
Pavlo Iuriichuk
 
Павло Юрійчук — Перехід на Angular.js. Howto
GlobalLogic Ukraine
 
ASP.Net basics
Victor Matyushevskyy
 
Валідація те збереження даних форм..pptx
distupr118
 
"Vulnerabilities Analysis: Corporate DevSec Practices", Sergii Kulyk
Fwdays
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Пупена Александр
 
Masters Academy: Трендові інструменти розробки
Masters Academy
 
Інші підсистеми
Пупена Александр
 
Oleksandra Apanasenkova: Управління delivery (Частина 2) (UA)
Lviv Startup Club
 
Stfalcon QA Meetup 31.01.2020
Stfalcon Meetups
 
Kardash victor kardash unisenderprocess
Lviv Startup Club
 
"Microservices and multitenancy - how to serve thousands of databases in one ...
Fwdays
 
"Як ми переписали Сільпо на Angular", Євген Русаков
Fwdays
 
АНАСТАСІЯ ЧУДОВСЬКА «Переїзд з моноліта на мікросервіси з точки зору QA: як ...
QADay
 

More from eleksdev (7)

PPTX
Lecture android best practices
eleksdev
 
PPTX
Communication in android
eleksdev
 
PPTX
Hello android world
eleksdev
 
PPTX
Android location and sensors API
eleksdev
 
PPTX
Lecture java basics
eleksdev
 
PPTX
Css animation, html5 api
eleksdev
 
PPTX
Uml
eleksdev
 
Lecture android best practices
eleksdev
 
Communication in android
eleksdev
 
Hello android world
eleksdev
 
Android location and sensors API
eleksdev
 
Lecture java basics
eleksdev
 
Css animation, html5 api
eleksdev
 

Version control

Editor's Notes

  • #2: https://www.quora.com/What-is-the-difference-between-version-control-and-source-control
  • #20: Спрощена схема. Повна версія: http://nvie.com/img/[email protected]
  • #21: Ще було б кул додати слайд про ігнори, порівняльну таблицю Git та SVN. Декілька слайдів про інші сорс контроли