[devel] perl.git rewrite history

Dmitry V. Levin ldv на altlinux.org
Ср Сен 20 20:48:24 MSD 2006


Hi,

On Wed, Sep 20, 2006 at 08:54:03AM +0400, Alexey Tourbin wrote:
[...]
> Зато я примерно понял как устроен git.  Сейчас попробую объяснить, может
> кому-нибудь от этого будет просветление.  git -- это дерево объектов.
> Дерево означает что один объект содержит ссылки на другие объекты вниз
> по дереву.  Объекты бывают двух типов: blob (файлы) и tree (структура
> каталогов, в которые надо сувать файлы).  tree содержит ссылки на блобы.

Объект типа tree содержит список sha1-имён объектов типов blob и tree.

> Ещё бывают объекты типа commit; каждый новый commit описывает трансформацию
> дерева относительно предыдущего коммита.  В объекте commit содержится
> ссылка на предыдущий коммит

Объект типа commit содержит список sha1-имён объектов типа commit.

> и ссылка на дерево

Объект типа commit содержит sha1-имя объекта типа tree.

> которое перекрывает этот
> предыдущий коммит.  Всё что новое дерево не перекрывает -- всё то
> остается от дерева из старого коммита.

Нет, никто ничего не перекрывает, просто за каждым commit'ом закреплено
своё дерево.

> Так, имея на руках коммит, можно
> пройтись вниз по дереву к предыдущему коммиту и т.д., т.е. полностью
> развернуть дерево исходников.

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


-- 
ldv
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20060920/1d832167/attachment-0001.bin 


Подробная информация о списке рассылки Devel