Есть ли принципиальная разница между резервным копированием и контролем версий? - PullRequest
24 голосов
/ 14 февраля 2009

Чем управление версиями отличается от простых резервных копий?

Давайте забудем об оформлении функций и сконцентрируемся на душе управления версиями. Есть ли четкая линия, по которой резервные копии должны пересекаться, прежде чем их можно будет назвать VCS? Или они, по сути, одно и то же с разными целевыми рынками?

Если есть принципиальная разница, каково абсолютное минимальное требование, чтобы что-то достигло статуса контроля версий?

Когда вы отвечаете, не просто перечислите функции (такие как дельта-сжатие, распределенные / централизованные репозитории и решения для одновременного доступа), которые есть или должны иметь большинство систем контроля версий, если только они на самом деле не необходимы для VCS по определению.

Ответы [ 17 ]

27 голосов
/ 14 февраля 2009

Основная идея управления версиями заключается в управлении несколькими ревизиями одной и той же единицы информации. Идея резервного копирования заключается в копировании последней версии информации в безопасное место - более старые версии могут быть перезаписаны.

9 голосов
/ 14 февраля 2009

Возможность выполнять ветвление и объединение отделяет системы контроля версий от простых резервных копий. «Несколько параллельных вселенных».

См. Также превосходное руководство Эрика Синка по управлению версиями .

8 голосов
/ 14 февраля 2009

Я вижу несколько принципиальных отличий между резервными копиями и контролем версий:

  1. Резервные копии хранят только последнюю версию, или, даже если они хранят несколько версий, они не сохраняют каждую версию. VCS сохраняет каждую версию,
  2. Эта версия резервной копии часто устарела, потому что резервные копии не записывают каждое изменение, в то время как VCS делают,
  3. VCS позволяют одновременно использовать несколько альтернативных версий одного и того же изменения (т. Е. Ветвление).

Однако самое важное различие между резервными копиями и VCS заключается в том, что в VCS изменения имеют значение , означающее . В резервной копии создается новая версия, потому что какой-то компьютер где-то решил, что с момента последнего резервного копирования прошло x часов; само изменение совершенно бессмысленно . В VCS создается новая версия, потому что некоторые человек решили, что эта версия имеет свой собственный , означающий , свою собственную идентичность, отличную от всех других версий. Таким образом, в резервном копировании все версии равны (точнее: они одинаково бессмысленны), тогда как в VCS все версии являются особыми (они имеют свои уникальные значения). В VCS изменения имеют фактическую историю , где одно событие привело к другому, в резервной копии есть только строка несвязанных событий.

С этим тесно связано понятие изменение метаданных . В VCS каждое изменение имеет автора , отметку времени и, что наиболее важно, сообщение о фиксации . В этом сообщении фиксации записывается , почему было сделано изменение, другими словами, записывается "значение", о котором я писал в предыдущем абзаце.

история фиксации и особенно сообщения фиксации являются наиболее важными данными в хранилище VCS, а не самим кодом! Эти метаданные полностью отсутствуют в резервной копии.

4 голосов
/ 14 февраля 2009

Контроль версий представляет всю историю изменений; резервные копии стараются не потерять.

3 голосов
/ 14 февраля 2009

Совместное управление версиями, резервное копирование - это просто моментальный снимок.

Пример: с контролем версий два человека могут одновременно редактировать один и тот же файл, и система достаточно умна, чтобы объединить изменения. С резервной копией, какая версия файла "победит"? Резервное копирование никогда не «объединяет» две разные резервные копии в одну «истинную» резервную копию.

3 голосов
/ 14 февраля 2009

Вот несколько

  • Система резервного копирования хранит резервные копии для данный диапазон времени назад. Версия контроль обычно всегда держат все версии когда-либо сделанные.
  • Контроль версий как правило, концентрируется на версии текстовых файлов.
  • В системе контроля версий вы обычно можете получить немедленный доступ к любой версии любого файла. Система резервного копирования может занять некоторое время, прежде чем получить доступ к тому, что вы хотите найти.
2 голосов
/ 14 февраля 2009

Между ними определенно есть серая область, однако я бы определил следующее:

Управление версиями запускается действием «запись», когда резервное копирование обычно запускается с интервалом времени.

Программное обеспечение для резервного копирования можно настроить так, чтобы оно запускалось каждую секунду и не сохраняло данные, если не произошло никаких изменений, но этого недостаточно для того, чтобы это считалось контролем версий в моих глазах, поскольку возможно изменение файла дважды в второй.

2 голосов
/ 14 июля 2010

Основное отличие, которое меня выделяет, заключается в том, что контроль версий позволяет нескольким пользователям легко работать над одним и тем же кодом. Резервных копий нет.

2 голосов
/ 14 февраля 2009

На мой взгляд, вот некоторые минимальные функции VCS, которые могут отсутствовать в базовой резервной копии:

  1. VCS должна хранить более одной версии (где в качестве резервной копии может храниться только последняя последняя известная исправная версия)

  2. Из-за 1. каждая версия должна быть как-то идентифицирована (дата, тег, идентификатор версии)

  3. VCS обычно может поддерживать более одного одновременного пользователя

  4. VCS для исходного кода обычно будет иметь поддержку ветвления, объединения, добавления комментариев и просмотра дельт

1 голос
/ 14 февраля 2009

Контроль версий - это в основном автоматизированная система резервного копирования, которая позволяет нескольким пользователям вносить свой вклад. В программном обеспечении, таком как CVS, есть еще больше функций, но да, это система резервного копирования. Это не означает, что вы должны выполнять резервное копирование вручную вместо использования контроля версий, хотя они просто находятся в той же нише вычислительной техники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...