-
Notifications
You must be signed in to change notification settings - Fork 23
Часткове оновлення І секції #207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 14 commits
98629e0
b61f716
9d678da
44a311d
53cf41f
520495b
35479fc
b6ad115
29e5981
a2d9f9e
87db386
e907fff
20bb0be
ff15762
e123ce2
e4f3ad6
41dcce6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,61 @@ | ||
=== Про систему контролю версій | ||
|
||
(((version control))) | ||
Що таке ``система контролю версій'', і чому це важливо? | ||
Що таке "`система контролю версій`", і чому це важливо? | ||
Система контролю версій - це система, що записує зміни у файл або набір файлів протягом деякого часу, так що ви зможете повернутися до певної версії пізніше. | ||
Як приклад, в цій книзі, для файлів, що знаходяться під контролем версій, буде використовуватися код програмного забезпечення, хоча насправді ви можете використовувати контроль версій практично для будь-яких типів файлів. | ||
Для прикладів в цій книзі, як файли, що знаходяться під контролем версій, буде використано код програмного забезпечення, хоча, насправді, ви можете використовувати контроль версій практично для будь-яких типів файлів. | ||
|
||
Якщо ви графічний або веб-дизайнер і хочете зберегти кожну версію зображення або макета (швидше за все, захочете), система контролю версій (далі СКВ) якраз те, що потрібно. | ||
Вона дозволяє повернути вибрані файли до попереднього стану, повернути весь проект до попереднього стану, побачити зміни, побачити, хто останній міняв щось і спровокував проблему, хто вказав на проблему і коли, та багато іншого. | ||
Вона дозволяє вивернути вибрані файли до попереднього стану, вивернути весь проєкт до попереднього стану, побачити зміни, побачити, хто останній міняв щось і спровокував проблему, хто вказав на проблему і коли, та багато іншого. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Тут використано Крім того дуже рекомендую при першому використанні наших новотворів в дужках подавати оригінал. Можливо, навіть раз на розділ чи навіть секцію, бо певен, люди часто читатимуть те, що їх цікавить, а не всю книжку від дошки до дошки. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Захопився )) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. А, о, згадав про перше використання |
||
Використання СКВ також в цілому означає, що, якщо ви зламали щось або втратили файли, ви просто можете все виправити. | ||
Крім того, ви отримаєте все це за дуже невеликі накладні витрати. | ||
|
||
==== Локальні системи контролю версій | ||
|
||
(((version control,local))) | ||
Багато людей в якості одного з методів контролю версій застосовують копіювання файлів в окрему директорію (можливо навіть директорію з відміткою за часом, якщо вони достатньо розумні). | ||
Багато людей в якості одного з методів контролю версій застосовують копіювання файлів в окрему теку (можливо, навіть теку з відміткою за часом, якщо вони достатньо розумні). | ||
Даний підхід є дуже поширеним завдяки його простоті, проте він, неймовірним чином, схильний до появи помилок. | ||
Можна легко забути в якій директорії ви знаходитеся і випадково змінити не той файл або скопіювати не ті файли, які ви хотіли. | ||
Можна легко забути в якій теці ви знаходитеся і випадково змінити не той файл або скопіювати не ті файли, які ви хотіли. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Може "знаходитесь"? |
||
|
||
Щоб справитися з цією проблемою, програмісти давно розробили локальні СКВ, що мають просту базу даних, яка зберігає всі зміни в файлах під контролем версій. | ||
|
||
.Локальні системи контролю версій. | ||
.Діаграма локальних систем контролю версій. | ||
image::images/local.png[Local version control diagram] | ||
|
||
Одним з найбільш поширених інструментів СКВ була система під назвою RCS, яка досі поширюється з багатьма комп'ютерами сьогодні. | ||
RCS зберігає набори латок (тобто, відмінності між файлами) в спеціальному форматі на диску; він може заново відтворити будь-який файл, як він виглядав, в будь-який момент часу, шляхом додавання всіх латок. | ||
https://www.gnu.org/software/rcs/[RCS^] зберігає набори латок (тобто, різницю між файлами) в спеціальному форматі на диску; вона може заново відтворити стан будь-якого файлу у будь-який момент часу, шляхом додавання всіх латок. | ||
|
||
==== Централізовані системи контролю версій | ||
|
||
(((version control,centralized))) | ||
Наступним важливим питанням, з яким стикаються люди, є необхідність співпрацювати з іншими розробниками. | ||
Щоб справитися з цією проблемою, були розроблені централізовані системи контролю версій (ЦСКВ). | ||
Такі системи як CVS, Subversion і Perforce, мають єдиний сервер, який містить всі версії файлів, та деяке число клієнтів, які отримують файли з центрального місця. | ||
Ці системи (такі як CVS, Subversion і Perforce) мають єдиний сервер, який містить всі версії файлів, та деяке число клієнтів, які отримують файли з центрального місця.(((CVS)))(((Subversion)))(((Perforce))) | ||
Протягом багатьох років, це було стандартом для систем контролю версій. | ||
|
||
.Централізовані системи контролю версій. | ||
.Діаграма централізованих систем контролю версій. | ||
image::images/centralized.png[Centralized version control diagram] | ||
|
||
Такий підхід має безліч переваг, особливо над локальними СКВ. | ||
Наприклад, кожному учаснику проекту відомо, певною мірою, чим займаються інші. | ||
Наприклад, кожному учаснику проєкту відомо, певною мірою, чим займаються інші. | ||
Адміністратори мають повний контроль над тим, хто і що може робити. Набагато легше адмініструвати ЦСКВ, ніж мати справу з локальними базами даних для кожного клієнта. | ||
|
||
Але цей підхід також має деякі серйозні недоліки. | ||
Найбільш очевидним є єдина точка відмови, яким є централізований сервер. | ||
Якщо сервер виходить з ладу протягом години, то протягом цієї години ніхто не може співпрацювати або зберігати зміни над якими вони працюють під версійним контролем. | ||
Якщо жорсткий диск центральної бази даних на сервері пошкоджено, і своєчасні резервні копії не були зроблені, ви втрачаєте абсолютно все -- всю історію проекту, крім одиночних знімків проекту, що збереглися на локальних машинах людей. | ||
Локальні СКВ страждають тією ж проблемою -- щоразу, коли вся історія проекту зберігається в одному місці, ви ризикуєте втратити все. | ||
Якщо жорсткий диск центральної бази даних на сервері пошкоджено, і своєчасні резервні копії не були зроблені, ви втрачаєте абсолютно все -- всю історію проєкту, крім поодиноких відбитків проєкту, що збереглися на локальних машинах людей. | ||
Локальні СКВ страждають тією ж проблемою -- щоразу, коли вся історія проєкту зберігається в одному місці, ви ризикуєте втратити все. | ||
|
||
==== Децентралізовані системи контролю версій | ||
==== Розподілені системи контролю версій | ||
|
||
(((version control,distributed))) | ||
Долучаються до гри децентралізовані системи контролю версій (ДСКВ). | ||
В ДСКВ (таких як, Git, Mercurial, Bazaar або Darcs), клієнти не просто отримують останній знімок файлів репозиторія: натомість вони є повною копією сховища разом з усією його історією. | ||
Таким чином, якщо вмирає який-небудь сервер, через який співпрацюють розробники, будь-який з клієнтських репозиторіїв може бути скопійований назад до серверу, щоб відновити його. | ||
Кожна копія дійсно є повною резервною копією всіх даних. | ||
Ось тут до гри долучаються розподілені системи контролю версій (РСКВ). | ||
В РСКВ (таких як, Git, Mercurial або Darcs), клієнти не просто отримують останній відбиток файлів репозиторія: натомість вони є повною копією сховища разом з усією його історією. | ||
Таким чином, якщо вмирає який-небудь сервер, через який співпрацюють розробники, будь-яке з клієнтських сховищ може бути скопійований назад до серверу, щоб відновити його. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. А як щодо "Таким чином, якщо з ладу виходить центральний сервер, через...". There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "будь-яке з клієнтських сховищ може бути скопійоваНЕ" |
||
Кожна копія являє собою повну резервну копію всіх даних. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Мені подобається "являє собою", але переживаю що це може бути калька з ру. |
||
|
||
.Децентралізовані системи контролю версій. | ||
.Діаграма децентралізованих систем контролю версій. | ||
image::images/distributed.png[Distributed version control diagram] | ||
|
||
Більш того, багато з цих систем дуже добре взаємодіють з декількома віддаленими репозиторіями, так що ви можете співпрацювати з різними групами людей, застосовуючи різні підходи в межах одного проекту одночасно. | ||
Більш того, багато з цих систем дуже добре взаємодіють з декількома віддаленими сховищами, так що ви можете співпрацювати з різними групами людей, застосовуючи різні підходи в межах одного проєкту одночасно. | ||
Це дозволяє налаштувати декілька типів робочих процесів, таких як ієрархічні моделі, які неможливі в централізованих системах. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
=== Командний рядок | ||
|
||
Є багато різних варіантів використання Git. | ||
Крім оригінальних клієнтів командного рядка, є безліч клієнтів з графічним інтерфейсом користувача з різними можливостями. | ||
Крім оригінальних клієнтів командного рядка, є безліч клієнтів з графічним інтерфейсом користувача із різними можливостями. | ||
Для цієї книги ми будемо використовувати Git в командному рядку. | ||
З одного боку, командний рядок -- єдине місце, де можна виконувати _всі_ команди Git - більшість графічних інтерфейсів для простоти реалізують тільки деяку підмножину функціональності Git. | ||
Якщо ви знаєте, як виконати щось з командного рядка, ви, ймовірно, також можете з'ясувати, як виконати це і графічному інтерфейсі, у той час як зворотне не завжди вірно. | ||
З одного боку, командний рядок -- єдине місце, де можна виконувати _всі_ команди Git -- більшість графічних інтерфейсів для простоти реалізують тільки деяку підмножину функціональності Git. | ||
Якщо ви знаєте, як виконати щось з командного рядка, ви, ймовірно, також можете з'ясувати, як виконати це і у графічному інтерфейсі, у той час як зворотне не завжди вірно. | ||
Крім того, в той час, як вибір графічного клієнта справа особистого смаку, інструменти командного рядка мають _усі_ користувачі одразу ж після інсталяції. | ||
|
||
Таким чином, ми очікуємо, що ви знаєте, як відкрити термінал в Mac або командний рядок, або Powershell в Windows. | ||
Таким чином, ми очікуємо, що ви знаєте, як відкрити термінал в macOS або командний рядок чи PowerShell у Windows. | ||
Якщо ви не розумієте, про що ми тут говоримо, можливо, вам потрібно буде зупинитися та швидко дізнатися це, щоб ви були в змозі розуміти інші приклади і описи в цій книзі. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Щодо "анотований tag" та "легкий tag": якщо ми вже маємо узгоджений переклад для "tag - мітка", то може використати його і тут? Тобто "анотована мітка" та "легка мітка"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я коли проглядав словник проєкту, то деякі терміни взагалі складно сприймати/прийняти.
До прикладу, для мене мітка — це "label", а tag — це тег і так як це проєкт технічної документації, то мене трохи дивує, коли я знаючи контекст і термінологію в оригіналі, читаю український переклад і не можу зрозуміти сенс цілих речень.