1. Куча / Говнокод #23665

    0

    1. 1
    2. 2
    3. 3
    https://imgur.com/a/UoyMX
    
    Планирую вести себя как прикрелейтед, какие подводные?

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

    А лоу-левелщики, кстати юзают? Есть вообще тенденция, что веб-макаки используют сабж чаще крестобогов, или наоборот?

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

    З.Ы. Капча 2k16

    Запостил: vistefan, 22 Января 2018

    Комментарии (31) RSS

    • SEO: #git #gitk #графы
      Ответить
    • Ну тут либо пикрелейтед либо дроч на линейную историю и ёбля с ребейсами на каждом коммите... Мне пикрелейтед больше по душе - меньше сил уходит, а реально копаться в истории (не блеймом и не бисектом) приходится довольно редко.

      З.Ы. Если ветки живут мало, то метро ветвится меньше.
      Ответить
      • > метро ветвится меньше

        Квест: построить Кольцевую
        Ответить
        • > кольцевую
          Всего-то pre-image атака на sha...
          Ответить
          • А что, есть идеи насчет алгоритма, как по пулу коммитов построить такой граф?
            Ответить
            • > коммити не отсортированы жестко по даже

              Дата тут не особо важна, главное — отношения отец-сын между коммитами, которые формируют граф. У любого коммита, кроме первого, есть >=1 родителя, которые хранятся в объекте коммита и используются для получения хэша дочернего коммита.

              Обходишь граф коммитов в топологическом порядке, начиная с коммита, что записан в файле ветки, раскидывая ноды по линиям. Сложно даже представить, сколько там должно быть эвристик и мяса, посмотри лучше исходники программ, которые этот граф рендерят. GitX, к примеру.
              https://github.com/rowanj/gitx/blob/ce17d079d2563baf5c54ed6c49d6dcc05deffad4/Classes/git/PBGitGrapher.mm#L56
              Код gitk — какое-то совсем непонятное говно. Понятно, почему его никто годами не трогает.
              https://github.com/git/git/blob/59c276cf4da0705064c32c9dba54baefa282ea55/gitk-git/gitk#L634
              Ответить
              • О_o

                Gitk написан на bash?
                git-gui написан на bash?
                Ответить
              • > Код gitk — какое-то совсем непонятное говно.

                там похоже на массивах делается дерево или граф.
                напоминает старую добрую нотацию `parent[node] = new_parent`.

                > Понятно, почему его никто годами не трогает.

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

                но gitk использует выхлоп комманд гита, и этот выхлоп достаточно стабильный, поэтому менять приходиться крайне редко.
                Ответить
                • У меня нет проблем с массивами, меня смущает туча глобальных переменных, простыни кода и названия функций в стиле varcinit.
                  Ответить
                  • да, они OO фичами Tcl не пользуются. совсем не энтерпрайз ;)

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

                    или ты ожидал что у программы которая делает так много, сложность будет как у однострочника?
                    Ответить
    • Все время какой-то git или svn ставить надо, не проще ли просто zip скачать.
      Ответить
      • Да уж, вот именно "ставить" гит -- это, конечно, главная проблема с ним...

        Ты на винде что ли?

        З.Ы. Чуть не вырвалось "чувак, ты реально крэйзи".
        Ответить
        • Судя по "zip скачать" - на 98 винде... Или в хр тоже не было?
          Ответить
          • Ты думаешь он прямо говорит про софт для работы с zip?

            Я так понял, он имеет ввиду, что проще скачать zip-архив с кодом.
            Ответить
          • В ХР уже было искаропки, анально интегрировано в проводник. А еще в ХР был Портфель, но это уже совсем другая история...
            Ответить
            • > анально интегрировано в проводник

              Ждём появления юзера AnalnyyIntegrator
              Ответить
            • Я в детстве часто создавал портфели, мне нравилась их иконка.
              Спасибо, что напомнил.
              Ответить
            • Так он и в Win 7 есть!
              Правда не так заметен.
              Ответить
            • В 95м уже был портфель
              Ответить
              • крутая фича.

                rsync для нубов. но работает - потому что просто и без извратов.

                в каком то смысле, аналогов мало - современные файл-мэнеджеры редко поддерживают temp панель нынче. или поддерживают её криво.
                Ответить
            • Он еще в 95 был, ньюфажина.
              Ответить
    • Мне svn-то нужен только для бекапа кода. Я боюсь там ни дай бог что-то кликнуть.
      Ответить
    • Здесь требуется комментарий специалиста в написании кода, хакера и просто хорошего человека AnalPerOral.
      Ответить
    • Git есть ветка
      и коммит пророк ее
      :-D
      Ответить

    Добавить комментарий