Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Программирование и алгоритмические языки в Linux

Giggle: графический интерфейс для Git

Оригинал: "Giggle: A Git GUI"
Автор: Jake Edge
Дата публикации: June 2nd, 2010
Перевод: Н.Ромоданов
Дата перевода: июнь 2010 г.

В течение примерно пяти лет, пока повсюду шло распространение распределенной системы контроля версий Git, она получила достаточное количество приверженцев. Но по своей сути, Git ориентирована на использование в командной строке, что не всегда нравится всем его пользователям. В течение всего этого времени для Git создавались различные графические интерфейсы, в том числе два инструментальных средства на базе Tcl/Tk , которые поставляется совместно с Git. Пакет Giggle является графической оболочкой для Git, созданной на основе GTK+, версия с номером 0.5 которой была выпущена в апреле этого года.

Вместе с Git поставляются два инструментальных пакета, которые предназначены для выполнения двух различных задач: gitk предназначен для просмотра репозитария, тогда как git-gui предоставляет возможность изменять содержимое репозитария с помощью операций закоммичивания файлов, слияния, создания версий и т.д. Их комбинация обеспечивает достаточно полные функциональные возможности доступа к Git, но из-за того, что его пользовательский интерфейс, сделан на основе Tcl/Tk, не хватает наглядности. Кроме того, эти пакеты не интегрирутся с рабочим столом GNOME, как визуально, так и функционально, что пытается сделать пакет Giggle (и другие пакеты).

В Giggle сочетаются в одной программе средства просмотра репозитария и функции его изменения, но набор функций, используемых для изменения, все еще отстает от имеющихся в git-gui. В Giggle есть два режима: "Browse" ("Обзор") - для дерева исходных кодов и "History" ("История") - для просмотра операций коммит, выполняемых в репозитарии.

В режиме просмотра имеется три панели просмотра: слева - дерево исходного кода, в верхней части справа - содержимое выбранного файла и в нижней части справа - журнал и графом историй версий. Если в разделе историй версий щелкнуть по более ранней версии, информация в панели, изображающей содержимое файла, как и следует ожидать, изменится. Вдобавок в панели с содержимым файла будет появляться всплывающее окно с информацией о том, когда и какие строки добавлялись, т.е., по существу, у вас имется эквивалент команды git blame.

В режиме просмотра также есть возможность использовать другие операции, такие как редактирование или коммит файлов, создание ветви или патча и т.д. Двойной щелчок по имени файла вызовет переход в режим редактирования, хотя, как выбирается конкретный редактор, напоминает головоломку. Для репозитария ядра Linux в качестве подходящего выбирается редактор Emacs, но для кода для сайта LWN, в качестве подходящего выбирается редактор KWrite. Можно предположить, что последний берется из недр настроек KDE как вариант редактора, используемого по умолчанию, но неясно откуда берется Emacs — возможно, сыграло свою роль использование различных языков реализации (Python вместо C).

Это указывает на еще одну из причин, из-за которой Giggle довольно трудно использовать: отсутствие какой-либо документации. Можно просто щелкнуть мышкой и увидеть, что произошло, но небольшое руководство для пользователей было бы к месту. Кроме единственного способа выяснить, как работает пакет Giggle - "щелкнуть мышкой и увидеть", у него есть другой большой недостаток: производительность.

Производительность Giggle довольно слаба, особенно если учесть, что в инструменте, для которого предназначен этот пакет, определенное внимание уделяется скорости работы. На запуск Giggle для репозитария ядра Linux прежде, чем появится интерфейс, которым можно будет пользоваться, тратится 15-20 секунд при 99% загрузки процессора. Это можно было бы как-то объяснить при использовании огромного репозитария с большим количеством файлов и версий, таким как ядро Linux, но ситуация точно такая же и в случае с репозитарием гораздо меньшего размера.

Дело не только в том, что запуск пакета медленный. Переход из режима просмотра в режим истории может иногда занять до 10 секунд. При прокрутке истории пакет Giggle может на некоторое время перейти в паузу из-за недостатка ресурсов процессора. В целом, от практического использования пакета сложилось достаточно тягостное впечатление, особенно в сравнении с gitk, который работает достаточно быстро. В течение часа использования Giggle, пакет несколько раз прекращал правильно работать и зависал.

В режиме просмотра истории создается журнал git log, который вместе графом, отслеживающим коммиты, выдается на панели в верхней части графического интерфейса. Как только выбирается операция коммита, внизу слева указываются файлы, на содержимое которых повлияет эта операция. После этого можно выбрать любой из этих файлов и в нижней правой части окна будет видно, как файл изменится. Отсутствует возможность подробного сравнения старой и новой версий такая, как есть в других инструментальных средствах, - она могла бы быть приятным дополнением.

С момента создания проекта в январе 2007 года в него постоянно добавляются новые функции. В последнее время релизы выпускаются довольно часто, а с января этого года — более или менее ежемесячно, но перед этим в течение почти года проект находился в состоянии стагнации. Пока неясно, каковы планы для релиза 0.6 и далее, хотя в списке открытых вопросов (list of open issues), указаны некоторые идеи, касающиеся ошибок и возможностей, которые, вероятно, будут реализовываться.

Есть и другие довольно активно разрабатываемые пакеты графического интерфейса для Git, в том числе пакет git-cola, разрабатываемый на основе Python/Qt4, и пакет gitg, в котором также используется GTK+. В последнем пакете внимание также уделяется клиентам Git для Windows и MacOS, тем самым делается попытка реализовать согласованный интерфейс к Git для всех трех платформ. В частности, особое внимание уделяется интерфейсу GitX для MacOS X.

Помимо чисто визуальной привлекательности (а графический интерфейс Tk, безусловно, имеет довольно неуклюжий вид), создается впечатление, что в действительности Giggle и другие графические интерфейсы для Git не дают ничего существенно большего, чем делают пакеты gitk и git-gui. Это можно объяснить довольно медленными темпами развития этих инструментов, поскольку каждому, кому действительно нужен графический пользовательский интерфейс для Git, уже что-то имеет под рукой. Также вероятно, что автономный графический интерфейс менее интересен для тех, кто привык к интегрированным средствам разработки (IDE), таким как Eclipse.

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