Я вважаю, що відповідь на ваше запитання є надзвичайним так - переваги керування файлами за допомогою системи контролю версій значно перевищують витрати на впровадження такої системи.
Я спробую детально відповісти на деякі моменти, які ви порушили:
- Резервне копіювання: У мене вже створена система резервного копіювання.
Так, так і я. Однак, слід враховувати деякі питання щодо доцільності використання системи резервного копіювання загального призначення для адекватного відстеження важливих та активних файлів, що стосуються вашої роботи. З боку продуктивності:
- З якого інтервалу ваша система резервного копіювання робить знімки?
- Скільки часу потрібно для створення знімка?
- Чи повинен він зображати весь ваш жорсткий диск під час зйомки, чи можна було легко сказати створити резервну копію двох файлів, які щойно отримали критичні оновлення?
- Чи може ваша система резервного копіювання з точністю показати вам, що змінилося у ваших текстових файлах від однієї резервної копії до іншої?
І найголовніше:
- У скільки локацій збережено резервне копіювання? Вони перебувають у тому самому фізичному місці, що і ваш комп’ютер?
- Наскільки легко відновити задану версію одного файлу із системи резервного копіювання?
Наприклад, мати Mac та використовувати Time Machine для резервного копіювання на інший жорсткий диск у моєму комп’ютері. Time Machine чудово підходить для відновлення непарного файлу або відновлення моєї системи, якщо все зіпсується. Однак у мене просто немає того, що потрібно довіряти моїй важливій роботі:
Під час створення резервної копії Time Machine повинен зображати весь жорсткий диск, який займає значну кількість часу. Якщо я продовжую працювати, немає гарантії, що мій файл буде захоплений у тому стані, який він був, коли я ініціював резервну копію. Я також можу досягти іншої точки, яку я хотів би зберегти до завершення першого резервного копіювання.
Жорсткий диск, на якому зберігаються резервні копії Time Machine, знаходиться в моїй машині - це робить мої дані вразливими до крадіжок, пожеж та інших катастроф.
У такій системі управління версіями, як Git, я не можу ініціювати створення резервної копії певних файлів, не вимагаючи збереження в текстовому редакторі, а файл знімається та зберігається миттєво. Крім того, Git розподілений таким чином, що кожен комп'ютер, на якому я працюю, має повну копію сховища.
Це означає, що моя робота віддзеркалена на чотирьох різних комп’ютерах - нічого, крім божого вчинку, не могло б знищити мої файли та дані, і тоді я, мабуть, все одно не надто переймався б.
- Формування та перемотування: я ніколи не відчував необхідності цього робити, але я бачу, як це може бути корисним (наприклад, ви готуєте кілька статей журналу на основі одного і того ж набору даних; ви готуєте звіт, що оновлюється щомісяця тощо) )
Як соліст, я так і не роздрібнююся. Однак час, який я заощадив, маючи можливість перемотати назад, одноразово окупив мої інвестиції у вивчення системи контролю версій багато-багато разів. Ви кажете, що ніколи не відчували необхідності цього робити, але перемотування будь-якого файлу у вашій поточній системі резервного копіювання справді було безболісним, здійсненним варіантом?
Іноді звіт виглядав краще 45 хвилин, годину чи два дні тому.
- Співпраця: Більшу частину часу я сам аналізую дані, таким чином, я не отримаю переваг щодо контролю версій щодо співпраці.
Так, але ви дізнаєтесь про інструмент, який може виявитися незамінним, якщо ви в кінцевому підсумку співпрацюєте з іншими над проектом.
- Час оцінювати та вивчати систему контролю версій
Не надто хвилюйтеся з цього приводу. Системи контролю версій схожі на мови програмування - у них є кілька ключових понять, яких потрібно вивчити, а решта - це лише синтаксичний цукор. По суті, перша система управління версіями, яку ви вивчаєте, потребує вкладення найбільшого часу, для переходу на іншу потрібно просто вивчити, як нова система виражає ключові поняття.
Виберіть популярну систему та вирушайте до неї!
- Можливе збільшення складності в порівнянні з моєю поточною системою управління файлами
Чи є у вас одна папка, скажімо, Projects
що містить усі папки та файли, пов’язані з вашою діяльністю з аналізу даних? Якщо так, то плескання контролю версій на ньому точно збільшить складність вашої файлової системи 0
. Якщо ваші проекти розкидані про вашому Computer- , то ви повинні централізувати їх перед застосуванням контролю версій , і це в кінцевому підсумку зменшуючи складність управління вашої Files-, тому у нас є Documents
папка врешті-решт.
- Чи варто контролювати версії, докладаючи зусиль?
Так! Це дає вам величезну кнопку скасування і дозволяє легко переносити роботу з машини на машину, не турбуючись про такі речі, як втрата USB-накопичувача.
2 Які основні плюси та мінуси прийняття контролю над версіями?
Єдине, про що я можу подумати - це незначне збільшення розміру файлів, але сучасні системи управління версіями можуть робити абсолютно дивовижні речі при стисненні та вибірковому збереженні, так що це майже суперечка.
3 Яка хороша стратегія початку роботи з контролем версій для аналізу даних з R (наприклад, приклади, ідеї робочого процесу, програмне забезпечення, посилання на посібники)?
Тримайте файли, які генерують дані чи звіти під контролем версій, будьте вибіркові. Якщо ви використовуєте щось подібне Sweave
, зберігайте свої .Rnw
файли, а не .tex
файли, які отримуються з них. Зберігайте необроблені дані, якщо повторно придбати це буде болем. Якщо можливо, напишіть і зберігайте сценарій, який отримує ваші дані, та інший, який очищає або модифікує їх, а не зберігає зміни в необроблених даних.
Що стосується вивчення системи контролю версій, я настійно рекомендую Git та це керівництво по ньому.
На цих веб-сайтах також є кілька корисних порад та рекомендацій щодо виконання конкретних дій з Git: