как работает контроль версий? - PullRequest
11 голосов
/ 18 мая 2009

как обычно работает контроль версий? это сохраняет файлы diff как след с хэшами, чтобы проверить след?

Ответы [ 3 ]

8 голосов
/ 18 мая 2009

Ознакомьтесь с Серия блогов Эрика Синкса по управлению версиями .

Кроме того, Джоэл Спольски написал Hg Init: учебное пособие по Mercurial , которое, наконец, заставило меня "понять", что такое распределенный контроль над источниками.

Существует более одного способа снять шкуру с кошки ...

7 голосов
/ 18 мая 2009

Различные VCS используют разные подходы. Например, CVS создаст файл на сервере для каждого файла, который вы фиксируете. По сути, это файл в формате RCS; CVS - это всего лишь оболочка для RCS, которая запускает команды RCS для множества файлов в поддереве каталога (RCS может работать только с отдельными файлами).

Файл RCS содержит список изменений (номер версии, сообщение о регистрации и объем изменений). После этого приходит копия текущей версии HEAD. Остальные файлы - это различия между версиями ( длинное объяснение ).

Таким образом, CVS может быстро вернуть версию HEAD (которая чаще всего запрашивается) и может вычислять другие версии.

CVS не выполняет никакой проверки; если один из ваших файлов поврежден, вам нужна резервная копия. Поскольку CVS основан на RCS, он не может создавать версии каталогов и не может отслеживать переименования. CVS и RCS используют стандартную команду diff(1) для создания различий.

Subversion (SVN) работает аналогично, но добавляет версии каталогов и переименовывает. Более того, SVN использует лучший алгоритм сравнения (xdelta), который дает меньший репозиторий.

Объяснение того, как работает Git , см. здесь .

0 голосов
/ 02 июня 2009

Darcs очень отличается и ИМХО более интуитивно понятен, чем другие SCM, даже распределенные. Для начинающих есть отличное руководство о том, как это работает: Понимание Darcs .

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