Log in

September 4th, 2007

Previous Entry Share Next Entry
01:20 am - FLOSS weekly #19 follow-up (3)
"The very basic structure and idea behind git has not changed since Linus wrote the initial implementation".

Well, while that is not untrue, that statement itself may lead to confusion unless clarified.

Linus did not just write the whole thing and left.  He still visits the git mailing list and offers his insights on issues that matter.

By the time the basic structure as we currently know has stabilized, we had help from literally dozens of contributors to add many things on top of the very original version:
  • We did not have tag objects, and annotated or signed tags;
  • We did not have packfiles, which gives the modern git its performance and small disk footprint;
  • The tree object originally was a flat file structure; it was later changed to hierarchical data structure, which allows us to scale much better;
  • We did not envision that multiple branches in a single repository would turn out to be such a useful way to work, and did not have support for switching branches;
  • We had a way to record merges, but did not have a way to compute common ancestors nor merge results in an automated way.
  • We did not have the set operation between objects given commit ranges.  This is essential part of modern git that transfers objects between repositories efficiently.
  • We did not have textual patch output, nor a way to apply a patch and produce commit from it.
It still is amazing that all of these were done without having to go back to the drawing board.  It shows how sound the initial conceptual design was.
Current Music: Caetano Veloso

(Leave a comment)

FLOSS weekly #19 follow-up (3) - gitster's journal

> Recent Entries
> Archive
> Friends
> Profile

Pages at the k.org
The latest blog by Gitster

> Go to Top