Comments 37
Прекрасные иллюстрации! (ᵔᴥᵔ)
Когда открытый код, да все просто и понятно.
Из картинок можно целый специализированный комикс собрать c:
Вообще обычные люди хранят в VCS текст. В основном. То что он чаще является кодом — частный случай. Просто текст, вот такой статьи, в формате TeX, и еще картинки. Можно конечно считать это кодом — но все же более общее название было бы уместнее.
автомитического мерджа, вам надо каждый файлик брать и копипастить изменения в основную ветку, что неудобно.
Не совсем понятно, что значит "автомитический мердж." И в svn совершенно не нужно брать каждый файлик отдельно и куда-то копипастить. Все делается само автоматически, как и в других vcs.
Может быть это было в какой-то древней версии 10 лет назад. В современном svn все работает. Главные трудности в svn — всегда нужна сеть, и он может быть очень мммееееддддленный. Ну и с ветками работать не так удобно, в svn это просто директории. Хотя для новичков "папки" svn обычно интуитивнее.
А в целом, svn просто другая система (он работает просто как файловая система) со своими преимуществами и недостатками. Его легко поставить на windows (не тянет за собой треть линукса), он безопасен (все что закоммичено — сохранено навеки, удалить нельзя ничего, никакого rebase), легко сделать checkout одной маленькой части проекта и работать только с ней (а это позволяет модный монорепо без костылей), можно мешать ревизии отеальных файлов в папке проекта и мерджить отдельные файлы произвольным образом. Права доступа к отдельным частям проекта — легко. svn работает с бинарными данными и даже (теоретически) как-то мерджит. Легко аутентификацию по сертификату. Встроенный WebDAV с минимальными усилиями: можно смонтировать как диск в Windows для тех, кому нужен доступ только для чтения, или просто бросить ссылку для браузера (какие-нибудь дизайнеры так могут любоваться картинками из svn или скрипт может получать последние бинарные данные для управления коллайдером).
Что еще, для просмотра изменений и мержа обычно используются специализированные утилиты, например kdif3
Если про типы, ну так новичку не надо тогда и про черный и белый ящик рассказывать. Это вещи примерно одного порядка и нужны они для понимания. Другие же, более совершенные системы не рассматриваются.
Если про kdif3, то окей, пускай страдает, в конце концов все великие дела начинались в командной строке
SVN с бранчами работает так себе… И мержит тоже соответственно. Имхо Меркуриалу тут конкурентов нет.
Статья отличная, давно такую искал на русском языке. Огромное спасибо!!!
Но есть несколько капель "дёгтя":
Git создал интерактивную «игрушку», чтобы посмотреть на то, как происходит ветвление — https://learngitbranching.js.org >
Вроде не Git это придумал, а вот этот человек — Peter Cottle https://github.com/pcottle
Но есть и графический интерфейс. Устанавливаете отдельную программу и выполняете действия мышкой. Обычно это делается через «черепашку» — программа называется Tortoise. TortoiseSVN, TortoiseHG, TortoiseGit… >Обычно — это у кого? Если у вас — то так и нужно указать было что в нашей компании или ещё как-то, но не так что это обычно вообще у всех.
Вот такие мелочи и испортили отличнейшее впечатление от статьи. А жаль, очень жаль.
P.S. Ну и редактор текста здесь, либо я бестолковый и не могу нормально оформить список...
По второму вопросу не поняла претензии. Я же не пишу, что все так делают, а любая статья — это всегда ИМХО автора. Сколько я общалась с людьми, не только из своей компании, то это или черепашка, или уже IDE.
Если говорить про новичка, да еще и НЕ разработчика, то ему черепашка больше зайдет
Не соглашусь. Когда статьи пишутся и если это мнение автора, то в любом случае лучше вставить "по моему мнению", т.к. иначе воспринимается как факт (я так думаю, могу и ошибаться).
И не соглашусь что Tortoise лучше зайдёт новичкам. Мои студенты (ещё не разработчики) выбирают разные GUI-клиенты Git: GitKraken, GitHub Desktop и т.д.
Система контроля версий (от англ. Version Control System, VCS) — это место хранения кода. Как dropbox, только для разработчиков!
Плохой пример. Dropbox это ближе к хостинг сервису с версионированеим.
А VCS это просто система контроля версий, которая может работать просто на локальной машине, без сети.
Это удобно, потому что можно сделать несколько разных коммитов, но не отправлять их в репозиторий. Например, потому что уже code freeze и тестировщики занимаются регрессией.
Для этого существуют бренчи. И code freeze может быть для мастер или релизной ветки. А держа коммиты у себя локально, не получится их протестировать в CI.
Поэтому использовать систему контроля версий и первым делом не изучить бренчи — это плохо.
SVN — очень простая система, одна из первых.
Ну не такая она уж и простая. И чтобы называть ее одной из первых, ей надо было появиться лет на 20 раньше.
С бренчами согласна, разумеется, их стоит изучить =)
Туда положил файлики, сюда положил.
Дропбок — облачный сервис. Им нельзя хранить файлики с версиями «локально».
Если я локально настроил себе git, другой пользователь на свой компьютер это скачать не сможет. Надо поднять сервер или настроить сетевое взаимодействие с репозиторием (способов есть много).
Это как разница между git и github (правда гитхаб естественно предоставляет кучу дополнительного функционала).
Простите, в статье есть ключевые логические ошибки, видно, что написано человеком далеком от практики и особенно современной практики.
В нынешнее время, если в проекте используется система контроля версий, но в 99% случаев, это будет уже и code-review система, где все идет через pull request.
P.S. Вдобавок далеко не все пользовались дропбоксом ;)
Что такое VCS (система контроля версий)