Я чувствую, что ответ на ваш вопрос - ошеломляющее да - преимущества управления вашими файлами с помощью системы контроля версий намного превышают затраты на внедрение такой системы.
Я постараюсь подробно ответить на некоторые вопросы, которые вы подняли:
- Резервное копирование: У меня уже есть резервная система.
Да, и я тоже. Однако есть некоторые вопросы, которые следует рассмотреть относительно целесообразности использования системы резервного копирования общего назначения для адекватного отслеживания важных и активных файлов, относящихся к вашей работе. На стороне производительности:
- Через какой интервал ваша система резервного копирования делает снимки?
- Сколько времени занимает создание снимка?
- Нужно ли создавать образ всего жесткого диска при создании снимка, или можно легко попросить сделать резервную копию двух файлов, которые только что получили критические обновления?
- Может ли ваша система резервного копирования показать вам с высокой точностью, что изменилось в ваших текстовых файлах с одной резервной копии на другую?
И самое главное:
- В скольких местах хранятся резервные копии? Они находятся в том же физическом месте, что и ваш компьютер?
- Насколько просто восстановить данную версию отдельного файла из вашей резервной системы?
Например, иметь Mac и использовать Time Machine для резервного копирования на другой жесткий диск в моем компьютере. Time Machine отлично подходит для восстановления нечетного файла или восстановления моей системы, если что-то испортилось. Однако у него просто нет того, что нужно, чтобы доверить мою важную работу:
При резервном копировании Time Machine должна создавать образ всего жесткого диска, что занимает значительное время. Если я продолжу работать, нет никаких гарантий, что мой файл будет записан в том состоянии, в котором он находился при запуске резервного копирования. Я также могу достичь другой точки, которую я хотел бы сохранить до завершения первого резервного копирования.
Жесткий диск, на котором сохранены мои резервные копии Time Machine, находится на моей машине - это делает мои данные уязвимыми для кражи, пожара и других бедствий.
С системой контроля версий, такой как Git, я могу инициировать резервное копирование определенных файлов, не затрачивая больше усилий, чем запрос сохранения в текстовом редакторе, и файл отображается и сохраняется мгновенно. Кроме того, Git распространяется так, что на каждом компьютере, на котором я работаю, имеется полная копия хранилища.
Это равносильно тому, что моя работа была отражена на четырех разных компьютерах - ничто иное, как стихийное бедствие, не могло уничтожить мои файлы и данные, и в этот момент мне, вероятно, было бы все равно.
- Форкировка и перемотка: Я никогда не чувствовал необходимости делать это, но я понимаю, как это может быть полезно (например, вы готовите несколько журнальных статей на основе одного и того же набора данных; вы подготовка отчета, который обновляется ежемесячно и т. д.)
Как солист, я тоже не так уж и много. Тем не менее, время, которое я сэкономил, имея возможность перемотки назад, в одиночку окупило мои вложения в изучение системы контроля версий много-много раз. Вы говорите, что никогда не чувствовали необходимости делать это, но перематывать какой-либо файл в вашей текущей системе резервного копирования действительно было безболезненным, выполнимым вариантом?
Иногда отчет выглядел лучше 45 минут, час или два дня назад.
- Сотрудничество: Большую часть времени я нахожусь
анализируя данные сам, таким образом, я
не получит сотрудничество
Преимущества контроля версий.
Да, но вы бы изучили инструмент, который может оказаться незаменимым, если вы в конечном итоге будете сотрудничать с другими в проекте.
- Время оценивать и изучать систему контроля версий
Не беспокойтесь об этом.Системы контроля версий похожи на языки программирования - у них есть несколько ключевых понятий, которые необходимо изучить, а остальное - просто синтаксический сахар.По сути, первая система управления версиями, которую вы изучите, потребует больших затрат времени, а переключение на другую - это просто изучение того, как новая система выражает ключевые понятия.
Выберите популярную систему и сделайте это!
- Возможное увеличение сложности по сравнению с моей текущей системой управления файлами
У вас есть одна папка, скажем Projects
, которая содержит все папки и файлы, связанные сваша деятельность по анализу данных?Если это так, то включение контроля версий увеличит сложность вашей файловой системы ровно на 0
.Если ваши проекты разбросаны по вашему компьютеру, то вам следует централизовать их, прежде чем применять контроль версий, и это в итоге уменьшит сложность управления вашими файлами - вот почему у нас есть папка Documents
.1092 *
- Стоит ли контролировать версию?
Да!Он дает вам огромную кнопку отмены и позволяет легко переносить работу с машины на машину, не беспокоясь о таких вещах, как потеря USB-накопителя.
2 Каковы основные плюсы и минусы внедрения контроля версий?
Единственное, о чем я могу подумать, - это небольшое увеличение размера файла, но современные системы контроля версий могут делать абсолютно удивительные вещи со сжатием и выборочным сохранением, так что это довольно спорный вопрос.
3 Какова хорошая стратегия для начала работы с управлением версиями для анализа данных с помощью R (например, примеры, идеи рабочего процесса, программное обеспечение, ссылки на руководства)?
Хранить файлыкоторые генерируют данные или отчеты под контролем версий, будьте избирательны.Если вы используете что-то вроде Sweave
, храните файлы .Rnw
, а не файлы .tex
, полученные из них.Сохраняйте необработанные данные, если будет сложно повторно их получить.Если возможно, напишите и сохраните сценарий, который получает ваши данные, и другой сценарий, который очищает или изменяет его, а не сохраняет изменения в необработанных данных.
Что касается изучения системы управления версиями, я настоятельно рекомендую Git и thisруководство к нему.
На этих веб-сайтах также есть несколько полезных советов и рекомендаций по выполнению определенных действий с помощью Git: