Live data from Hacker News

The Architecture of Git (2012)

aosabook.org

21–30 of 85 posts

Re: The Architecture of Git (2012)

#21
post #4

> To understand Git's design philosophy better it is helpful to understand the circumstances in which the Git project was started in the Linux Kernel Community. I don't understand this sentiment. It's not helpful to know the history at all. At best, it romanticize the choices made. Stating the goals would be an intro that shows some level of analysis.

No, the author is right. Git us in its core a database for managing patches. Understanding the needs of Linus Torvalds as his role of Kernel maintainer is about the only good way to understand why git is so strangely designed.

Darcs is a database for managing patches. Nothing in Git inherently cares about patches. To a first approximation it's a database for managing full snapshots of trees of files.

Re: The Architecture of Git (2012)

#22
post #5

Git is the VCS most suitable for bottom-up learners. Which is the VCS most suitable for top-down learners?

Darcs, probably? Darcs has one of the easiest UIs in the DVCS game and was always very easy to teach people how to use.

But then of course if you want to learn the details of how darcs works under the hood you wind up in Haskell, and feeling a need to read a lot of academia papers.

Re: The Architecture of Git (2012)

#23
post #5

Git is the VCS most suitable for bottom-up learners. Which is the VCS most suitable for top-down learners?

I'm a bit disappointed by the flippant replies. Mercurial is a very solid alternative VCS (Facebook uses it internally) and is friendlier (or at least has less gotchas) than git.

Re: The Architecture of Git (2012)

#24

> To understand Git's design philosophy better it is helpful to understand the circumstances in which the Git project was started in the Linux Kernel Community. I don't understand this sentiment. It's not helpful to know the history at all. At best, it romanticize the choices made. Stating the goals would be an intro that shows some level of analysis.

By understanding the real world motivation you can reason about both the stated and unstated goals of the project.

Re: The Architecture of Git (2012)

#25
I still recommend people to watch this video from the man himself, Linus Torvalds, if they really want to understand the architecture and data structure behind git - https://www.youtube.com/watch?v=4XpnKHJAok8

If I remember correctly, he mentioned that he wrote the MVP in 4 weeks and the data structures he used are quite simple. Never got a chance to look at the source code but I guess they are in github (at least the mirror copy.)

Re: The Architecture of Git (2012)

#26
post #5

Git is the VCS most suitable for bottom-up learners. Which is the VCS most suitable for top-down learners?

I'm a bit disappointed by the flippant replies. Mercurial is a very solid alternative VCS (Facebook uses it internally) and is friendlier (or at least has less gotchas) than git.

As a flippant replier, it's partly motivated by not really thinking other VCSes have a chance.

As confusing to use as Git's UI may be, I think the only way we're getting away from it is if someone massive pushes an alternative.

Alexa.com has Github trending down six places to the 66th most visited page on the internet. Worldwide. That's not just programmers that's everyone.

Re: The Architecture of Git (2012)

#27
post #5

Git is the VCS most suitable for bottom-up learners. Which is the VCS most suitable for top-down learners?

> Which is the VCS most suitable for .... Git. It doesn't matter what your question is. :-) I mean, come on, it's not like you have a choice. You gotta use whatever your teammates/coworkers/organization is using. That said, yeah, there's a lot of pedagogic problems with git stemming from the INSANE inconsistency of command-line. The only redeeming quality? It works and it's popular.

It works and it's popular and the underlying model is easy to understand.

I think step one to replacing git will be to launch a tool that completely replaces the git CLI but uses the same model below. I've not looked into EasyGit much, but I don't think it goes far enough.

Re: The Architecture of Git (2012)

#28

I still recommend people to watch this video from the man himself, Linus Torvalds, if they really want to understand the architecture and data structure behind git - https://www.youtube.com/watch?v=4XpnKHJAok8 If I remember correctly, he mentioned that he wrote the MVP in 4 weeks and the data structures he used are quite simple. Never got a chance to look at the source code but I guess they are in github (at least th…

It only took 4 weeks plus 30 years of programming experience and a genius mind.

Re: The Architecture of Git (2012)

#29
post #5

Git is the VCS most suitable for bottom-up learners. Which is the VCS most suitable for top-down learners?

> Which is the VCS most suitable for .... Git. It doesn't matter what your question is. :-) I mean, come on, it's not like you have a choice. You gotta use whatever your teammates/coworkers/organization is using. That said, yeah, there's a lot of pedagogic problems with git stemming from the INSANE inconsistency of command-line. The only redeeming quality? It works and it's popular.

People once said that about Subversion.

I believe Mercurial has a chance if they get support for large binary files right before git does.

Post reply on HN