Репутація українського ІТ. Пройти опитування Асоціації IT Ukraine
×Закрыть

Gitless — Система контроля версий поверх Git

Всем привет)

Наткнулся на днях. В одном подкасте ( пилотный выпуск подкаста от Хекслета — www.youtube.com/watch?v=t2X5E8de3OQ ) рассказывали про сабж.
gitless.com
github.com/sdg-mit/gitless

Стало интересесно, насколько оно удобнее (проще) самого гита? и оно стабильное или еще нет? ибо судя по гитхабу есть только т.н. пре-релизы. Кто-то уже юзал? Какие впечатления?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Правильный Git называется Hg?

Наша песня хороша, начинай сначала?

Какие впечатления

Ехал Gitless через Gitless
Видит Gitless в Gitless Gitless
Сунул Gitless Gitless в Gitless
Gitless Gitless Gitless Gitless

У этих ребят соглашение чуть чуть странное www.gitkraken.com/eula особенно пункт 4.

> ... related to the Software or any other Axosoft product or service.

А Ви думали, що як лишите їм feature request, а вони його виконають, то потім отримаєте % з продажу чи частку в компанії? :)

Я про це: " ... Axosoft and its licensors own all right, title and interest to the Software and any modifications, ideas, or recommendations provided by You, together with all associated intellectual property rights. You assign to and agree that Axosoft shall own and have the right to exploit and including in the Software any suggestions, enhancements requests, feedback, recommendations or other information provided by You related to the Software or any other Axosoft product or service. ...“. Ці рядки можна по різному трактувати, адже інформація про коміти, проекти, ... теж “provided by You”..

Цей конкретний пунка складно трактувати неправильно. Там відразу за «provided by You» йде «related to the Software or any other Axosoft product or service». Якщо не забувати, що таке «the», та у розділі 1 уточнити, що таке «Software», стане ясно, що мова йде про фідбек на продукти Axosoft, а не про інформацію, яку я опрацьовую за допомогою їхніх продуктів.

Іншими словами, якщо я придумаю круту фічу до їхнього продукту, то продукт не стане моїм, всі права лишаться в них, включно з правами на придуману мною фічу.

Хлопці з gitkraken-у використовують трохи ширше поняття ніж фічі —

provided by You
Ці три слова вживаються ще у пункті 2.2, що має рядки:
You acknowledge and agree that Axosoft shall own all right, title and interest in and to all intellectual property rights (including all derivatives or improvements thereof) in the Software and any suggestions, enhancement requests, feedback, recommendations or other information provided by You or any of Your agents, contractors and outsourcers relating to the Software.
Оскільки коміти та вихідні коди також є"other information provided by You«(привіт синхронізація) та були оброблені за допомогою «the Software» (привіт побудова дерева комітів) то вони мають «relating to the Software» з позиції викорисання. І в умові немає цього уточнення. Хоча я не маю юридичної освіти, лише один симестр технічного правознавста в КПІ, я очікую бачити в ліцензійній угоді чітко визначенні положення/формулювання, що не можуть двояко трактуватись.

Я не кажу, що gitkraken погана річ, навпаки — це один з найкращих візуальних редакторів для лінуксу, проте їх ліцензійна угода трохи дивна, і через це ним користуватися стохи лячно. Наприклад, угода MIT подібних рядків в собі не містить.

З іншого боку, ліцензійна угода від google.com, також дивна (www.google.com/policies/privacy/. Вона має рядки, наприклад

telephony log information like your phone number, calling-party number, forwarding numbers, time and date of calls, duration of calls, SMS routing information and types of calls
(Privacy Policy -> Information we collect -> Log information).

І якщо у випадку з гуглом важко знайти інший такий якісний пошуковий сервіс, то з графічним клієнтом для гіта такої делеми немає.
Звісно, рядки з ліцензійних угод що цитатами приведені вище, були включені в угоди за для користуванча, і з найкращих намірів, проте як ми знаємо (історія) — Найкращими намірами встелена дорога в пекло.

relating to the Software

Я так розумію, ці слова обмежують зміт всього попереднього переліку в реченні. Тобто комміти не відносяться безпосередньо до git-клієнту, т.я. жодним чином не впливають на нього. Але тут краще юристів спитати, чи так би воно трактувалось у суді...

хм, пытаются из git сделать mercurial, но чтобы он остался git’ом?

А где тогда безымянные ветки? :)

Почитал документацию, не пробовал. Впечатления:

1. На коммит, явное нацеливание на подход «я тут твёрдо уверен, что именно собрался менять». Не знаю, как у кого, но в продуктовой разработке это нетипично. Более часто, что формально мелкое изменение вверху начинает хотеть чего-то в нижележащих слоях, или на том же слое в соседних файлах, а ещё потянет за собой пару-тройку рефакторингов. Уже готовые правки (даже если не компилируются) откладываются (stash, временные ветки), чтобы приступить позже. Для ясности понимания изменения из одного файла могут поступать только частичные изменения. В gitless всё это похерено, видимо, в предположении на самые простые правки. Мне это подозрительно.

2. fuse это замаскированный вариант или rebase, или цепочечного cherry-pick. В принципе, это достаточно грамотная идея (именно что цепочка cherry-pick это нередкий вариант). Тут, да, они ухватили популярный юзкейс.

3. switch с сохранением изменений для каждой ветки отдельно это тоже интересный вариант, но при этом желательно иметь и дополнительное управление этим. Сейчас оно плохо потерпит вмешательство в сложных случаях напрямую через git. Я так понимаю, это сделано для ситуации типа «у меня тут тонна тяжелоуправляемых настроек в IDE, сплошные явные пути, я не могу это просто так перенести на другие пути через git clone, а тут прибежало начальство и требует срочно отложить все незавершённые мержи и лечить проблему кривых рук Марьи Петровны с чушью в поле номера». Тогда непонятно, почему они не начали с версии под Windows, где подобные проблемы обычно в разы тяжелее.

Это для тех кто ниасилил git?

Лучше бы нормальный аналог Черепашки под Линух запилили, чем подобной херней страдать.
Все приятнее подсвеченые иконки в фаловом менежере наблюдать и одним кликом коммитить, пушить и т.д., чем запускать консоль и там команды печатать. Как-никак уже 2016 год, а не 1980.

так во многих IDE уже есть своя интеграция с гитом...

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

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

Им до Черепашки, как мне до Китая раком.
Это не гуевые приложения, это жалкие пародии на GUI. Уж лучше консоль, чем эти поделия.
Из всего, что я нашел, это SmartGit, но и он уродец в сравнении с Черепашками. Он в чем-то лучше консоли в чем-то хуже.
Есть подобие Черепашек — это RabbitVCS, но он просто не работает почти никогда. У него только на сайте красивая картинка. Чтобы он заработал, надо его самому в большей части переписать обычно, благо опенсурс.

да, расовые линуксоиды которые даже порносайты смотрят с командной строки такого не поймут. :)

почему ненавидят? просто её никто не портировал и она там не нужна.
Sourcetree, GitX, gitk, GitKraken (новый, модный, молодёжный), tig в консоли...

GUI клиент вообще не особо нужен.

Это когда это SourceTree под линухом появился?
answers.atlassian.com/...9631/sourcetree-for-linux

Все эти

GitX, gitk, GitKraken
это идеальные примеры того, каким ГУИ не должен быть.

Да и вообще GUI не нужен. Рассовый линуксоид ломает Пентагон командой ipconfig.

Рассовый линуксоид ломает Пентагон командой ipconfig.
А рассовый виндузятник взламывает Пентагон кликаньем мышкой по красивой красной кнопке с надписью «Взломать Пентагон»)

Тыча по плиткам на телефоне. Жаль, что под WP8.1 проводника нет...

ipconfig.
Виндузятник спалился.

Так я и есть виндузятник, никогда не отрицал этого. Посмотрев на последний Минт с Убунтой решил, что пока они остануться жить в виртуалках под Win7.

Но вот что меня удивляет, почему так линуксоиды ненавидят TortoiseXXX? Может потому, что это один из немногих продуктов с действительно удобным Гуем.
просто если ты пишешь/правишь код, то и коммитишь этот код сразу в редакторе/IDE, зачем тебе файловый менеджер и черепашки? не вижу в этом ничего удобного.
Когда же нужно сделать что-то сложное — есть консольный git и SourceTree

ну я же не раз говорил, что формошлепством не занимаюсь.

ну я же не раз говорил
как же я мог такое пропустить :D
что формошлепством не занимаюсь
ась? к чему тут это? вы не пишете код? копируете файлики туда-сюда мышкой?

Ага и это тоже и часто в больших количествах.

можно и возможностями IDE пользоваться, но это часто просто неудобно
а какие IDE используете?

Матлаб, Студию, QtCreator, иногда PyCharm, когда нужен Python или Bash. А да в проектах обычно все эти языки представлены и надо и там и там что-то править и писать. А да говно мамонта, как в типичных аутсосрсах я давно уже не ковыряю.

Студию
иногда PyCharm, когда нужен Python
а почему не Python Tools for Visual Studio — microsoft.github.io/PTVS ? ну раз уж раз уж студию юзаешь. Просто интересно)
или Bash
а для баша для студии есть такой плагин — visualstudiogallery.msdn.microsoft.com/...63-45d6-9992-2fca1b1fe4fd — правда он видимо только для VS 2013 подходит.

Я его юзал для баша, это лучшее что я нашел ну и для питона соответсвенно. Студия последнее время напрягает, слишком она тяжелая стала. Её все реже и реже, но в матлаб под виндой нормально интегрированы пока только компилеры от MS и Intel. Для последних матлабов появилась поддержка MinGW, но пока кривоватая.

Студия последнее время напрягает, слишком она тяжелая стала
согласен) но ведь можно например установить VS 2010 (или 2012), причем Shell Integrated версию, на которую доустановить нужные расширения для нужных языков.
Правда не знаю, насколько, к примеру, Visual Studio 2010 Shell Integrated легче Visual Studio 2010 Professional версии.

Ну, добавлю, в студии достает ее трактовка стандартов С++.
Видел, как 2010 студия собирала код с переменной, которой просто не существовало в области видимости. Не ругалась и даже как-то код работал. Для меня это до сих пор загадка (ковырять асемблерный код, что она там насобирала, мне было лень).
Пока студию держу только для матлаба и 2015 community самое то. Ну и для некоторых заказчиков — фанатов студии.

я устанавливал VS 2010 shell integrated не ради с++ и даже не ради си-шарпа, а ради F# и Nemerle) ну и + Python Toоls и IronRuby.
А для c/с++ из тех IDE, что смотрел, мне больше всего понравилась Falcon С++ sourceforge.net/projects/falconcpp .(правда я только учебные проги на Си смотрел/писал).
з.ы. а самая нормальная поддержка плюсов наверное была только в Visual Studio 6))

Что в IDE для меня важно:
1. Качество интеграции отладчика и его отзывчивость.
2. Умение юзать разные компиляторы.
Первое в Студии почти идеально.
Второе отсутсвует.
QtCreator — есть и первое и второе, но посредственно.
Моснтры типа Еклипса идут лесом.

Без отладчика IDE — это всего-лишь редактор, пусть и навороченный.

2. Умение юзать разные компиляторы.
кстати недавно посмотрел на Code::Blocks — так там по-видимому наиболее полная поддержка разных компиляторов для с/с++ из всех идешек наверное) Плюс поддерживает фортран и D (и есть еще какие-то доп. плагины). Ну и видел инфу, что для code::blocks пишут плагин для питона.

а вот как насчет

1. Качество интеграции отладчика и его отзывчивость.
в Code::Block не знаю, не проверял, но по идее должно быть хорошей, ибо эта идешка вроде считается одной из лучших ide для плюсов.
Моснтры типа Еклипса идут лесом.
плюсую)

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

Попробовал. На порядок хуже QtCreator. По пунктам и т.п. писать лень. Кому нравиться, пусть те и пользуются. Можно вообще в нотепаде или емаксе кодить.
Интеграция компиляторов в сранении в QtCreator не лучше. Интеграция дебагера никакая в сравнении даже с QtCreator.
D мне нафиг не упал. Фортран тоже (это из времен моей школьной и студенческой молодости).

черепаха под гит несколько неудобная. Особенно когда ожидаешь такого же удобства как в варианте для svn

Это да, но это лучшее, что есть. А для типичных операций, add, commit, push, pull, diff она великолепна. Самое главное я в файловом менеджере вижу, какие файлы поменялись, какие закоммитить, какие нет, какие добавилить или удалить и это всё подсвечено разными иконками.

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

add, commit, push, pull, diff, remove
. Типично я не работаю с тучей веток сразу, а с одной и редко переключаюсь, а еще реже сливаю или создаю ветки.
Вот в Черепахе именно это и отображено. Типичные операции сразу, более редкие дальше. Некоторых нет вообще, для этих редких случаев уже пользуй другие инструменты.
Самое главное я в файловом менеджере вижу, какие файлы поменялись, какие закоммитить, какие нет, какие добавилить или удалить и это всё подсвечено разными иконками.
Так это, git status же...

И с большим удовольствие рассматривать простыню текста. Понимаю.
Слушай, ты вообще не пользуешься файл-менеджерами, только в командной строке с регекспами все делаешь?

И с большим удовольствие рассматривать простыню текста.

Он вообще-то про status говорил, а не diff.
Хотя и дифф тоже полезно внимательно просмотреть.

Понимаю.

Похоже, нет.

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

А оно обычно таки эффективнее. Менеджеры это свалки разбирать, типа ~/Downloads/.

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

Не. Похож RabbitCVS (он типа поддерживает git). Но этот кролик безумно глючен и крив. Его поставить и запустить -уже танец с бубном с правкой его кода.
А черепашка в винде великолепна. Ну а для сильно вывернутых команд и в винде есть консоль. Вот только эти сильно вывернутые команды используются редко.
Сам гит может и неплох, но переусложнен, что пипец. Такой себе супер-пупер комбайн и по сути только с консольным интерфейсом.
А те, кто рисуют гуй к нему, зачем-то пытаются туда засунуть все его возможности сразу и поместить их на одном окне. Хотя типично нужно, добавить файл, закомитить, получить его. Всё. И вот черепашка в этом великолепна.
Возможно потому, что MS продумала API к explorer.
В лунуксе же каждый сборщик дистра обязательно пишет свой кривой «проводник», «текстовый редактор» и «плэер».

Не юзал, но осуждаю.
Первая мысль — это что, набор алиасов?
Вторая — а какая разница, запоминать нативные гитовые команды или эти.
Третья — гит сложный? (во всяком на уровне подмножества команд, которые вводятся на уровне автоматизма)

Люто плюсую, не покидал вопрос: на поркуа это вот все?

Не юзал, но осуждаю.
Это зря. Как минимум одна фича этого “набора алиасов” очень даже заслуживает внимания:

“The main thing to understand is that in Gitless a branch is a completely independent line of development. Each branch keeps its working version of files separate from each other. Whenever you switch to a different branch, the contents of your working directory are saved, and the ones corresponding to the branch you are switching to are retrieved.”

это типа как набор алиасов для stash / unstash при checkout’е?

Там они сохраняют, как пишут, не только локальные изменения, но также незавершённые слияния и тому подобное. Так что это шире, чем stash/unstash.

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

гит очень сложная и неинтуитивная система

Если не вбивать в голову каноны некоторых извращённых конкурирующих систем, git становится прост и понятен ;)
Мне он оказался в разы понятнее Hg, SVN, некоторых прочих. А основная критика идёт в стиле «я вот XX быстро понял, а тут...» в качестве XX, как правило, SVN или Hg. Только я на это смотрю так, что после этих систем «а Ватсон без трубки уже не мог».

основной критицизм гита сводится к тому что его создавали не для программистов а для мейнтейнеров /администраторов распределенных проектов

Именно что для программистов. В «распределённых проектах» не нужна, например, staging area, которая изначально была killer feature гита как для программиста (сейчас Tortoise впихивает её куда угодно, но в родных клиентах её до сих пор больше нет ни у кого).

Ну то, что это надстройка (а не замена), это плюс. В остальном не знаю. Мне и git нормально. Я там использую всего-то пару команд.

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

Подписаться на комментарии