6 окт

Переезжаем на git

point
6

27.jpg

Давненько хотел посмотреть в сторону распределенных систем контроля версий (DVCS). Не то, чтобы меня совсем не устраивал традиционный SVN, просто хотелось увидеть причины, по которым многие разработчики отказались от того же SVN/CVS. Чтобы не жалеть о выборе решил немного понаблюдать, что же происходит на поле этих самых DVCS. Заметных игроков здесь несколько: это git, bazaar и mercurial. Но презентация Линус Торвальдса в google расставила все точки над i. Под катом припасенные мной ссылки на разного рода полезную информацию.


Собственно, вот видео запись с презентации, прямо от создателя Git.

Если с английским не очень хорошо, пользователь belonesox На Хабре перевел это видео. Линк на плейлист на YouTube.

Совсем недавно, известный многим подкастер Umputun записал первый выпуск из своей серии технических подкастов, который посвятил теме распределенных VCS. Хоть речь и шла про Mercurial, но они с git-ом схожи как по идеологии, так и по многим командам верхнего уровня (push, pull, checkout etc). Очень рекомендую послушать -- авторитетное мнение от отличного разработчика.

Когда с концепцией всё ясно, стоит проникнуть в дебри и понять как работает эта система. Мне очень помогла книга Pro Git. Почитать ее можно прямо с сайта. К слову, это open source книга, и ее исходники и руководство по сборке можно найти (внимание, сюрприз) в git-репозитории автора на GitHub-е. Вы можете помочь автору, купив книгу в бумажном варианте либо сделав перевод на русский язык (ну или какой знаете).

Для жаждущих бОльших подробностей о внутренней работе Git-а рекомендую почитать разедл Git Internals указанной книги и посмотреть статьи ЖЖ-юзера los-t. Несмотря на то, что некоторые аспекты работы Git-а поменялись с момента публикации (2007-2008 года), поведение концептуальных вещей осталось неизменным.

В итоге было решено переезжать именно на Git. Так как основной репозиторий моего проекта находился в SVN, хотелось быстро и без мороки сконвертить это дело. Мне в этом деле очень сильно помогла статья Лёни Шевцова об его опыте перехода с SVN. Thanks a lot!

Для хостинга репозитория на пробу взял GitHub.com. Прекраснейший ресурс. Если всё таки о нём кто-то не слышал, всячески рекомендую. Работать там достаточно просто и легко, а разместить open source проект можно совершенно бесплатно.

Ну вот, теперь всё установлено, всё работает. Начинается период ежедневного пользования командами git-а. Неплохой сводный справочник по командам можно найти на Хабре. Паттерн использования "от отцов" можно посмотреть конечно же на kernel.org. Отмечу, что в этой заметке размещены шаблоны действий для разного рода участников: индивидуальных разработчиков, участников большой команды, интеграторов, администраторов репозитория. Кстати говоря, эффективное построение схемы взаимодействия внутри команды разработчиков -- очень интересная тема, но оставим ее пока за кадром. Продолжая, из свеженького на данный момент -- руководство, описывающее желаемый workflow для участников проекта Django.

Как итог, пока не жалею о переходе. В последнее время как-будто специально то и дело попадаю на различные библиотечки, которые хостятся на GitHub-е. Да и на отдыхе без интернета даже svn blame сделать нельзя. Жутко расстроило.

Если что-то забыл или ненароком соврал, добро пожаловать в комментарии.


Категории:



Стоит почитать


Добавь свой

Комментарии (6)

  • f4913eb88f33b044b3724a2751fb4337?d=identicon&s=80
    #1Анатолій Сахнік
    October 6, 2009, 09:06:06
    Щоб перехід був не дуже болісний, можна було б деякий час покористуватися git-svn. Ця цяцька дозволяє не тільки перенести історію svn у локальне сховище git, але й навпаки.
    Ответить
  • 5005dfcbb123e017638095c1e1b0e8af?d=identicon&s=80
    #2point
    October 6, 2009, 09:19:19
    >Анатолій Сахнік

    Но это была бы полумера. Да и я несколько ленив, поэтому не особо хотелось разбираться с git-svn. А разбираться, уверен, пришлось бы, т.к. ну не может всё проходить гладко -- рано или поздно возникнет неведомая х%ня, которая заставит прочесть man-ы от корки до корки.
    Ответить
  • f4913eb88f33b044b3724a2751fb4337?d=identicon&s=80
    #3Анатолій Сахнік
    October 15, 2009, 09:07:07
    А як же тоді перенести історію розробки з svn у git? Є ще якийсь шлях крім git-svn?

    Якби ще цей wordpress присилав повідомлення про нові коментарі, ціни б йому не було…
    Ответить
  • 5005dfcbb123e017638095c1e1b0e8af?d=identicon&s=80
    #4point
    October 15, 2009, 14:46:46
    >Анатолій Сахнік

    Я наверное неправильно выразился. Перенес именно с помощью git-svn. Других простых путей я не нашел.
    А комментарий был на тему того, что _постоянно_ пользоваться git-svn не хотелось, ибо лень :)

    В итоге, по факту, пока приходится вручную sync-ать в свн с помощью старого доброго meld.

    > Якби ще цей wordpress...
    Это не вордпресс, а собственная разработка. Этот блог отчасти для его обкатки.
    А комментарии на почту скоро появятся. Совсем недавно мой коллега написал плагинчик delayed job, который сейчас тестируется. Он как раз таки и будет рассылать почту подписчикам.
    Ответить
  • edf0ca570bffb2e1125eb4679e66560e?d=identicon&s=80
    #5bialix
    October 24, 2009, 14:46:46
    Почему в качестве иллюстрации к вашей статье выбрана иконка проекта Bazaar VCS (http://bazaar-vcs.org)? Это для чего? Из вашей статьи следует, что bzr вы не пользовались и переезжаете с SVN на Git. Каким тут боком bzr?

    Пожалуйста, уберите. Иконки svn или git можно взять на соответствующих сайтах.
    Ответить
  • 5005dfcbb123e017638095c1e1b0e8af?d=identicon&s=80
    #6point
    October 25, 2009, 11:19:19
    >bialix

    В процессе поиска иконки для заметки наткнулся именно на эту. Мне она показалась подходящей т.к.хорошо отображает суть: процессы ветвления и слияния.
    Но если вы настаиваете, то я конечно же сменю :)
    Ответить
Имя (обязательное)
Email (обязательное, скрыто)
Web-сайт
Комментарий

© WebDev.tk, 2009