Страницы

Поиск по вопросам

вторник, 2 октября 2018 г.

Понимание систем контроля версий

Как побороть дискомфорт при использовании систем контроля версий?
Сколько раз не пытался понять, не получается. Как люди работают с системой контроля версий и считают такой подход к разработке удобным?
Внесли правку в код - ввели команду в терминале для пуша - всё записалось. Ни разу не встречал систему контроля версий, которая предлагала бы онлайн-разработку с примерно таким подходом:
Заходим на онлайн-ресурс Создаём проект Указываем данные своего удалённого сервера для хранения кода Начинаем работу...
При этом при сохранении файлов, каждая правка автоматически создаёт дополнительные копии проекта с различными версиями кода. И есть возможность к возврату к любому состоянию проекта в любое время.
Такие системы контроля версий, как я понимаю, не существуют. Не могу только понять почему, ведь этот подход в десятки, а то и сотни раз удобней(для меня, возможно для кого-то ещё). Не нужно ничего настраивать, скачивать, работать в терминале...хоть сам бери и начинай стартап-проект.


Ответ

Ответ на основной вопрос:
Как побороть дискомфорт при использовании систем контроля версий?
Практика работы в команде прежде всего поможет. Часто возникают внештатные ситуации, которые сложно обработать без git:
необходимость отката При использовании git делается в одну команду = 10 сек, ручное рукоблудство не даёт гарантию корректного отката и делается дольше, при долгоиграющих проектах версий необозримо много. Откатить одинаково просто как файл, так и версию в целом. разработка командой одного проекта Тут вообще — я просто не представляю иного способа разработки одного большого проекта всем вместе. Очень удобно пришёл на работу — выполнил одну команду = 3 сек, и у тебя уже есть всё что сделали твои коллеги. Уходишь с работы — потратил 3 сек — все твои изменения в репе. просмотр истории эволюции кода из IDE А это вообще мегафича. Код в мозгу прямо живым становится, трёхмерным) Очень красиво всё отображается в NetBeans, например — сразу всё понятно, что к чему. И ещё это всегда помогает найти виновника костыля. защита от потери сорцов Как то когда я был на первом курсе и ещё не знал про системы контроля версий: писал месяц проект — фреймворк для 3д графики. И тут бах — подцепил вирус из ВК, который мне его удалил к чертям собачьим. Как было обидно — не передать. простой деплой между серверами Деплой проекта на боевой сервер (если мы о серверной разработке и интерпретируемом серверном языке) — делается в одну команду (git pull или git clone — кому как больше нравится). Никакого гемора, плясок с бубнами и путаницы с правами на файл. ветвление версий Даёт функционал, чтобы твои разработки в проекте и разработки группы прогеров не влияли на основной ход разработки и сливались только при стадии завершения задания в основную версию. При том, что изменения можно по прежнему спокойно отправлять в репу (работают все другие плюсы). руководство разработкой Руководство программистами может превратиться в ад без системы контроля версий с коммитами. Потому что нету быстрого способа посмотреть, что коллега сделал, нету качественного представления его трудов, невозможно на глаз оценить правильность трудов. А когда есть система - по истории коммитов можно очень быстро понять, что сделано хорошо, что сделано не очень, что надо быстренько подправить, где провести разъяснительную беседу. Красивое отображение в IDE истории коммитов, с подсвеченными изменениями/удалениями/вставками - это дополнительный сильный бонус, оценивать работу становится очень комфортно.
Так вот, необходимость обрабатывать эти внештатные ситуации в 100 раз перевешивает любой дискомфорт. И потом, к гиту быстро привыкаешь и уже считаешь его эталоном логичности. Если используем git из консоли, — не забываем про консольный интерфейс — кнопка Tab печатает команду за тебя по первым символам, стрелочки вверх и вниз вводят в поле ввода предыдущие набранные команды — очень удобно.
Внесли правку в код — ввели команду в терминале для пуша — всё записалось. Ни разу не встречал систему контроля версий, которая предлагала бы онлайн-разработку с примерно таким подходом:
А вот это уже не система контроля версий, а UI её оборачивающий.
Вопрос актуальный, поскольку при столкновении с cvs/git тоже испытывал определённый дискомфорт. Рушатся шаблоны. Но только потом осознал, насколько git крутая штука.

Комментариев нет:

Отправить комментарий