
Привет, я Оля
- Работала в Яндексе и Microsoft
- Вернулась в JetBrains
- Контрибьютор Git
- Делаю Django Girls и PyLadies
- Пишу на Kotlin, пришла на Python митап поговорить о C

Привет, я Git
Самая популярная система контроля версий
Почему?
- GitHub
- Because not enough people have tried Mercurial
- Linus himself wrote it


Что за странное название
Документация начинается со слов
git - the stupid content tracker

Зачем лезть в Git
- Все хотят в Open Source...
- И чтобы проект был погромче
- Это помогает искать работу / повышает зарплату
- Придает уверенности в себе
Как я попала в Git

Сперва был диплом в Linux Kernel

Затем 3 года попыток пройти на стажировки в Linux Kernel


Затем я решила сменить проект
Cразу прошла в Git
Fun fact: иногда у Git и Linux Kernel общие исходники

Today You Learned:
Не зацикливайтесь,
смотрите по сторонам
Как пройти на стажировку
- Прочесть правила выбранной стажировки
- Выбрать проект из списка
- Прочесть про него, изучить всё что есть
- Написать указанным контактам
- Сделать первую задачку
- (она должна показаться несложной)
- Optional: сделать еще парочку
- Ждать результатов отбора
Моя задача
-
Есть потребность доставать информацию из файлов и форматировать ее
-
Есть минимум 4 дублирующие реализации
-
Я пыталась удалить версию из
git cat-file -
И начать использовать версию из
ref-filter.c (git show-ref, git for-each-ref, etc) -
Я делаю это до сих пор
ref-filter начал работать в разы быстрее
За 3 месяца стажировки
- Я придумала сценарий переезда
(менторы одобрили) - Реализовала этот сценарий
(с кучей промежуточных успешных ревью) - На итоговом ревью мне сказали, что подход
был так себе - Предложили начать заново
- Стажировка кончилась
Мне заплатили
Все было ради
18 декабря 2018

' or 1=1 -- `ǤŘΔΜ` <b>σяsιηιυм</b> official (っ◔◡◔)っ


Всё было не напрасно
О стажировках
-
Это интересный опыт
-
Это деньги
-
Нужен опыт до начала стажировки
(хотя они утверждают обратное) -
Менторы могут быть слабыми
-
Стажировка на удаленке - на любителя
-
Не забываем про формальные требования


-
Зимой 2017-2018 была стажером Outreachy
-
Продолжила разработку просто так
-
Летом 2019 была ментором в GSoC
-
Мой студент распараллеливал часть команд (у него классный блог)
To sum up
Для начала нужно найти:
хотя бы 10 часов в неделю
ментора внутри проекта
машину с Linux (на Mac будет больно)
безграничное терпение
еще надо не бояться C, git, shell, английского
Успехов =)
Я тоже хочу в git!
Попроще можно?
Можно. Git - не единственный проект
Инструкция: как попасть в opensource
выучить 1 любой ЯП
найти приятный проект на этом языке
прочитать доки и инструкции для newbies
их нет? блин, как всегда
читаем issues, грустим, расходимся
пишем письма авторам последних коммитов
находим ментора, задачку, ревьюера
❤️❤️❤️❤️❤️


hacktoberfest.digitalocean.com
PiterPy Hackotberfest: 12 октября, SEMrush
PiterPy Hacktoberfest: 26 октября, HomeCredit
Как происходит процесс разработки
Как происходит процесс разработки
Что не так с git?
Что не так с Git?
ANSI C (1989 год)
При старте проекта в 2005
Нельзя объявить переменную в середине функции
Что не так с Git?
Mailing Lists
Что не так с Git?
Нет pull requests: используем патчи и Mailing Lists
Домашнее задание:
-
завтра поработать
-
git diff > my_work.patch
-
отправить всей своей компании через Mailing Lists
-
вместе поплакать
Что не так с Git?
Нет issues: используем Mailing Lists

Что не так с Git?
Нет системы для ревью
Угадайте что есть
Что не так с Git?
Ревью в британском стиле

Что не так с Git?
Угадайте bus factor

1
Что не так с Git?
Junio C Hamano

Оля, береги его, ему и так тяжело
(с) мои менторы
Что я упустила...
Что не так с Git?
Отвратительный код
Проект без структуры
Никакой документации для разработчиков
Что не так с Git?
Страшно течет память
Undefined behavior на каждом шагу

Для самых храбрых
github.com/git/git/commits?author=telezhnaya




Почему ref-filter стал быстрее
Давайте не качать файл, если он нам не нужен
github.com/git/git/commits?author=telezhnaya
matheustavares.gitlab.io/gsoc/
outreachy.org
summerofcode.withgoogle.com
Git under the hood
By Olga Telezhnaya
Git under the hood
My presentation from PiterPy Meetup 26.09.19
- 139