15

Стандарт де факто — git. Давно ли?

Stackoverflow с 2011 года проводит масштабные опросы разработчиков. В 2022 году в stackoverflow developer survey участвовало более 70к человек из 180 стран. Из-за большого числа участников получаются репрезентативные данные — какие технологии в трендах, куда в целом индустрия плывёт.


Сейчас лидер среди систем контроля версий (СКВ) де-факто Git со своими 97% среди профессиональных разработчиков. Можно выбирать несколько, поэтому сумма больше 100%.

Если переключиться на ответы начинающих разработчиков (скрин ниже), то SVN с 6% падает до 1.5%. Значит, через 3-5 лет в индустрию придут новые разработчики, которые не знакомы с SVN. Кстати, если вы не пользуетесь СКВ, то вы либо в 1.38% профессиональных разработчиков, либо среди 17% новичков. Учите git, любите git.

Ну, и меркуриал почти умер.

А зачем знать тренды? Чтобы не тратить время на умирающий инструмент. Например, какую систему контроля версий посоветовать начинающему разработчику. Вики насчитывает более 30 СКВ. И git был с нами не всегда.


Нашёл для вас опрос 2008 года, где лидер Subversion, скрин ниже. К сожалению, ни числа опрашиваемых, ни процентов у каждой из систем не указано. Тем не менее, git тут и не пахнет, а до настоящего времени дожили №1 SVN и №3 TFVC (они себя сейчас так называют).

В 2014 году на хабре был опрос по СКВ. Результат на скрине ниже — 71% был за git, 32% за SVN, 16% за mercurial, 8% за TFVC от Microsoft.

Так вот git пришёл, запушил, победил. Не исключено, что во многом из-за популярности github.


В телеграмм-канале DevFM разбираем разные нюансы из жизни разработчика на Python и не только. Стримы по программированию, что такое WSGI, миграция БД без даунтайма, чему стоит научиться в вузе, обман нейронных сетей. По пятницам у нас культурный код с фильмами, книгами и всяким разным.

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

очень жаль меркуриал. имхо он лучше. но гитхаб не оставил ему шансов

раскрыть ветку (34)
2
Автор поста оценил этот комментарий

а чем лучше?

раскрыть ветку (14)
1
Автор поста оценил этот комментарий

тем, что у него история священна, а в гите любой репозиторий при увеличении количества разработчиков больше одного стремится превратиться в один большой колтун. немало этому еще помогает то что в гите ветка - это не ветка а только башка, в отличие от меркуриала.

раскрыть ветку (13)
2
Автор поста оценил этот комментарий

Ветки в гит мега удобные.


А про историю не понял. Если не форспушить, то история тоже не изменится

раскрыть ветку (12)
1
Автор поста оценил этот комментарий

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


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


и когда вмерживаешь ветку фичи обратно в дев, все вот это дерево превращается в аморфный ком спагетти, в котором без поллитры не разобраться.


не хочу ругать гит, у такой концепции есть свои плюсы, но когда пол дня пытаешься восстановить картину событий, когда кто-то что-то криво замержил или еще чего поломал - поневоле с теплотой вспоминаешь меркуриал.

раскрыть ветку (11)
1
Автор поста оценил этот комментарий

Вроде всякие флоу сейчас рекомендуют фича-ветки по задачам и как можно чаще вливать, тогда проблема не особо острая

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

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


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

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

кажется в начале был и не только потенциал, но и по факту аудитория

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, довольно странно, как git смог настолько много сторонников получить. И почему тот же mercurial не сделал свой MercHub для кода)

0
Автор поста оценил этот комментарий

Интересно кстати, если бы был жив git и mercurial, за знание чего больше бы платили на рынке?))

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

да просто нужно было бы знать оба. там не рокет сайнс чтобы специализироваться на чем-то одном

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Наверное, так. Или IDE бы пришли к общему интерфейсу для новичков

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

я начинал пользоваться софтиной SmartGit еще когда она называлась SmartGitHg) и да, интерфейс был унифицирован)

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

У меня нет опыта в mercurial, но да, я часто слышал позитивные отзывы о нём. Жаль, что разнообразие инструментов умирает. С другой стороны, это теперь общее место всех разработчиков - удобнее стало

1
Автор поста оценил этот комментарий

Тоже перешел с меркуриала.  Из плюсов - внятная история всех комитов и бранчей. В гите с этим какой то бред.
Имхо гит выйграл из за популязирования "да им даже Линус Торвальдс пользуется".

раскрыть ветку (7)
1
DELETED
Автор поста оценил этот комментарий

Линус не просто пользуется, он его придумал.

Вообще он его придумал, чтобы Линукс было удобно поддерживать, а остальные подхватили потому что оказалось удобно не только для этого.

(С самим Линуксом тоже примерно так было)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В одном из интервью Линус говорил, что первые системы контроля версий были даже менее удобными, чем посылать патчи по почте. Поэтому он и решил запилить новый инструмент, удобный в работе.


С Linux было немного не так. В то время существовал Minix от Таненбаума. Насколько помню, была проблема в лицензии - Minix можно было юзать только в образовательных целях.

0
Автор поста оценил этот комментарий

А как выглядит история бранчей в mercurial?


История коммитов вроде и в git адекватная

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Задача - делаем ветку и потом мерджим ее в основную.

Гит - видим слияние и ограниченную историю (что разработчик запушил).
Меркуриал - видим всю разработку второстепенной ветки и только потом ее слияние.  Т.е. мы можем переключиться на коммит состояния у разработчика. 

По результату если разработчиков много , то лично мне удобнее в меркуриале видеть как и что делалось в прошедшем времени. В гите я же вижу только слияние и минимум инфы о промежуточных этапах.


А еще разработчик может склеить комиты и тогда вообще фиг поймешь, что происходило в промежутке, брались ли комиты с мастера и т.п.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
У вас какие-то неверные представления о работе гита.

Все коммиты на ветке разработчика видно после слияния, к как и сам коммит слияния. Разработчик, конечно, может перед закачиванием своей работы на сервер (push) свою ветку упростить до одного коммита, но зачем?

У нас в компании переписывание истории запрещено настройками сервера, т.е. если разработчик промежуточные коммиты отправляет на сервер, то они уже там остаются навсегда.

На локальном компьютере можно какие-то манипуляции проводить. Но по умолчанию вся история сохраняется, это ерунда про ограниченную историю.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В гитлаб/гитхаб по умолчанию master является protected, и туда нельзя форспушить. Но никто не мешает снять protected, конечно, кроме ненависти коллег)

0
Автор поста оценил этот комментарий

Интересный опыт, спасибо.


Не люблю склейку коммитов. Squash и rebase зло, оставьте мне историю развития кода как он был

1
Автор поста оценил этот комментарий

Разработчиков гитхаба можно понять – поддерживать две СКВ было бы дороже

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

я скорее ворчу что не нашлось никого кто сделал бы конкурентный hghub

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

Были такие на bitbucket. Поддерживали и гит, и hg. Но сдались

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

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

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

а мне больше гитлаб зашел. еще с тех пор, когда у гитхаба еще не было никакого ci/cd, а гитлаб этим во всю уже хвастался.


имхо, ci/cd гитлаба приятнее чем github actions

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

gitlab наше всё. А их опенсорсная модель вообще вне конкуренции. Есть какие-то данные по аудитории гитхаб вс гитлаб?

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

так все данные закрытые. как вообще собрать инфу например по селфхостингу гитлаба?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Никак. Пусть без селфхостинга, чисто оценить популярность самих платформ по числу активных учёток или проектов

1
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Интересно, где-нибудь есть свежие данные по популярности гитхаб/гитлаб/битбакет

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку