Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Categories:

svn и git

Это про системы контроля версий.



Сейчас я пользуюсь свн. И до недавнего времени считал, что в мире для контроля версий ничего лучше не изобрели.
8.50 КБ
Всё просто и элегантно. Короче, гениально. Есть репозиторий. Есть разработчики. Я сделал какие-то изменения, и закидываю их в репозиторий. Репозиторий фиксирует ревизию номер такую-то. Потом другие разработчики обновляют свои рабочие версии из репозитория, и мои изменения попадают к ним.
Сабвершен (свн) сам может попытаться слить изменения в коде, если разные разработчики работают над одним и тем же файлом. Если не получается, то у второго репозиторий откажется принимать изменения, пока конфликт правок не будет разрешён вручную. Круто! К тому же свн хранит в репозитории изменения, сделанные в файле. Ну то есть если я исправил одну строчку в файле весом в триста килобайт, лучше хранить пометку об изменении, чем весь файл снова. И я думал, что всё круто.

Потом познакомился (просто так, для общего развития), с системой контроля версий git. Это полный антипод свн. Потому что хранит слепки репозиториев, а не изменения, и потому, что распределённая. Как это - распределённая? А вот так - у каждого свой маленький репозиторий, а центрального нет.
10.44 КБ
То есть если я хочу получить последнюю версию всех изменений, я должен забрать изменения, сделанные другими разработчиками. И хорошо, если они там не слишком много наломали, так как, в случае чего, конфликты разрешать не им, а мне - да, это третье кардинальное отличие гита от свн. Пока разработчиков мало, думал я, всё ещё нормально, но когда много...
20.99 КБ
И, самое главное, откуда собирать релиз? Короче, гит - говно, подумал я.

Потом я узнал, что один из разработчиков гита - Линус Торвальдс, соответственно, линукс пишут под управлением гита. Кроме того, на гите сидят разработчики гнома, перла, кьютэ, иксорга... не могут же они все быть идиотами? - подумал я и прочитал то, что Линус рассказывал пару лет назад на своём выступлении в Google про гит.
10.10 КБ
Если у нас есть здоровенная орава разработчиков, изменения от них собирают себе руководители групп, а уже от них они попадают в один такой же, как и у всех, репозиторий, который просто назначен центральным. Оттуда и собираются релизы. В таком ключе, когда не у каждого кретина есть доступ к Центральному Хранилищу, всё выглядит даже очень неплохо. Правда, я не до конца понял, как быть с размерами репозиториев, если они хранят не изменения, а файлы целиком. Я сделал себе два разных репозитория - один гитовский и один свновский, и в каждый зачекинил по одному файлу на сто килобайт. Потом подписал в начале файла неприличное слово, и ещё раз зачекинил. И ещё раз так же. Репозиторий свн, как и следовало ожидать, вырос на сто с небольшим килобайт. Репозиторий гита - на двести с небольшим, то есть там где-то внутри всё равно оптимизация есть. Сам же Линус уверяет, что восьмигигабайтный репозиторий кде при миграции в гит умялся в полтора гигабайта.

Вот так-то. Всё-таки гит это довольно неплохо.
Subscribe

  • Матрёшка

    Летом я утопил свой большой чёрный фотоаппарат. Горевал-горевал, и купил новый. А утопленник просох как следует и ожил. Я знаю про возможность…

  • Тема для следующей фотографии

    Тему для следующей фотографии я выбирал так: пошёл в книжный магазин, подошёл к полкам со всякой фантастикой и фентезятиной, некоторое время выбирал…

  • Плёнка №211

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 12 comments

  • Матрёшка

    Летом я утопил свой большой чёрный фотоаппарат. Горевал-горевал, и купил новый. А утопленник просох как следует и ожил. Я знаю про возможность…

  • Тема для следующей фотографии

    Тему для следующей фотографии я выбирал так: пошёл в книжный магазин, подошёл к полкам со всякой фантастикой и фентезятиной, некоторое время выбирал…

  • Плёнка №211

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27…