Я чувствую, что ответ на ваш вопрос - ошеломляющее да - преимущества управления вашими файлами с помощью системы контроля версий намного перевешивают затраты на внедрение такой системы.
Я постараюсь подробно ответить на некоторые из вопросов, которые вы подняли:
- Резервное копирование: у меня уже есть резервная система.
Да, и я тоже. Однако есть некоторые вопросы, которые следует рассмотреть относительно целесообразности использования системы резервного копирования общего назначения для адекватного отслеживания важных и активных файлов, относящихся к вашей работе. На стороне производительности:
- Через какой интервал ваша система резервного копирования делает снимки?
- Сколько времени занимает создание снимка?
- Должен ли он создавать образ всего жесткого диска при создании снимка, или можно легко попросить сделать резервную копию двух файлов, которые только что получили критические обновления?
- Может ли ваша система резервного копирования показать вам с высокой точностью, что изменилось в ваших текстовых файлах с одной резервной копии на другую?
И, самое главное:
- В скольких местах сохранены резервные копии? Они находятся в том же физическом месте, что и ваш компьютер?
- Насколько легко восстановить данную версию одного файла из вашей резервной системы?
Например, у вас есть 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: