Понимание баз исходного кода git, mercurial, bazaar - PullRequest
5 голосов
/ 17 марта 2011

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

Я не знаю объективного, количественного показателя этого, поэтому в духе комикса WTFs / min я хотел бы спросить тех, кто читал исходные кодыиз этих инструментов, сколько WTF / мин вы оцениваете в каждом проекте?

Ответы [ 5 ]

5 голосов
/ 17 марта 2011

Если вы хорошо читаете C (и некоторые Perl и bash тоже), адимитрук прав.Git - хороший выбор.

Однако, если вам удобнее работать с Python, прочтите исходный код Mercurial.Многие из WTF / мин будут исходить из вашего знакомства с языком и стилем, на которых написан DVCS. Git написан на C, Perl и Bourne, Mercurial - это Python (с небольшим количеством C IIRC),Bzr написан на Python, Pyrex и C.

Вы также захотите принять во внимание, что ваш инструмент выбора.Если вы используете Git, вы поймете, что реализует каждый файл.Аналогично с Mercurial или Bzr.

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

4 голосов
/ 17 марта 2011

Что может быть намного лучше, чем Python, в контексте понятного и красивого кода?

Go для Mercurial.Я сделал это, и это очень мило :) 1003 *

2 голосов
/ 17 марта 2011

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

Git был спроектирован с большим количеством мыслей и даст вам лучший путь обучения.

Кроме того, взгляните на посты и скриншоты Скотта Чакона.

1 голос
/ 17 марта 2011

Перед тем, как погрузиться в код, полезно сначала получить обзор архитектуры, чтобы узнать, куда погружаться. Для базара может помочь следующее: http://doc.bazaar.canonical.com/bzr.2.3/en/user-guide/core_concepts.html http://doc.bazaar.canonical.com/bzr.2.3/developers/overview.html

Я нашел базаркодовая база хорошо организована, чиста и читаема, вероятно потому, что это python, и каждое изменение кода пересматривается, поэтому документация кода обычно изменяется в соответствии с обзором, что в целом делает вещи намного понятнее.Если вы застряли, вы всегда можете спросить об этом в IRC или в списке рассылки, но мне совсем не нужно было ничего делать.

0 голосов
/ 20 марта 2011

Интересно, сколько стоит смотреть на плохие примеры, чтобы получить представление о том, чего не следует делать, а не просто смотреть на хорошие примеры.Я никогда не смотрел на источник Subversion или CVS, но, возможно, стоит просмотреть их и понять , почему они не работают так же хорошо, как DVCS, о которых вы упоминали.

...