
GitQlient – a multi-platform GUI-oriented Git client written with Qt - app4soft
https://francescmm.github.io/GitQlient/
======
W0lf
Is anyone aware of a publicly available code base to look into when searching
for high quality Qt-based (desktop) applications? Think chromium-quality
software quality code base. I am looking for inspiring patterns and also
things such as naming schemes as I regularly change my mind when it comes to
developing Qt based applications with regard to:

    
    
      - naming things (e.g. should signals/slots be prefixed (sigFoo() -> onFooBared())
      - how to deal with signal functions actually not implemented (clang-tidy warnings)
      - how to break up large main window classes in a reasonable manner
    

and so on. Typically I immerse myself in one of the larger code bases I'm
aware of (Android, Firefox, Chromium, Tensorflow, and some others) and
regularly discover pretty useful patterns I can make use of. However, I was
unlucky to find something for Qt based.

~~~
ynezz
Qt itself, like for example
[https://github.com/qt/qttools](https://github.com/qt/qttools)?

~~~
MaxBarraclough
Good suggestion. Code snippets showing the naming style they use:

    
    
        connect(contextShortcut, SIGNAL(activated()), this, SLOT(showContextDock()));
    
        connect(m_messageView->selectionModel(),
            SIGNAL(currentColumnChanged(QModelIndex,QModelIndex)),
            SLOT(updateLatestModel(QModelIndex)));
    

Taken from
[https://github.com/qt/qttools/blob/7ec161d6f/src/linguist/li...](https://github.com/qt/qttools/blob/7ec161d6f/src/linguist/linguist/mainwindow.cpp)

------
pjmlp
Nice, good job, specially for going with Qt instead of Electron.

~~~
ericol
EVen thought I understand the bashing Electron gets, it doesn't seem that Qt
is the right choice right now.

I tried to test the software: Needed Qt as there are no releases, but Qt is
behind a paywall, and according to a previous post here in HN [1] it seems
they resorted back to tactics they already reckoned (In 2015) were not good. I
guess I'll just have to wait until the page has the releases ready.

[1]
[https://news.ycombinator.com/item?id=22821050](https://news.ycombinator.com/item?id=22821050)

~~~
jcelerier
> but Qt is behind a paywall,

apt install qtbase5-dev / brew install qt / whatever works just fine here.

if you are on windows and absolutely want the official releases :

    
    
        pip install aqtinstall
        python -m aqt install 5.14.2 windows desktop win64_msvc2017_64 -O c:/Qt/

~~~
ericol
Cheers.

I'm on debian 10 and that didn't work, but I suspect it's something to do with
my current installation that complains about a missing Qt4 software even after
installing that (That I'll research when I have the time).

~~~
jcelerier
Likely.

    
    
        sudo docker run -it debian:10
        apt update
        apt install qtbase5-dev build-essential g++-8 qt5-qmake qt5-default git
        git clone --recursive -j16 https://github.com/francescmm/GitQlient
        mkdir build && cd build
        qmake ../GitQlient && make -j16
    

seems to produce a build without errors here

------
pachico
This probably the less mobile friendly website I've seen in a while! I'll have
to check it in my laptop later on.

~~~
jrochkind1
I had trouble even on a laptop screen!

~~~
app4soft
I don't know what you talking about, because I has no any issues on laptop.[0]

BTW, Alternatively try read docs directly from repo on GitHub.[1]

[0] [https://i.imgur.com/9wGBlLJ.png](https://i.imgur.com/9wGBlLJ.png)

[1]
[https://github.com/francescmm/GitQlient/blob/master/docs/ind...](https://github.com/francescmm/GitQlient/blob/master/docs/index.md)

~~~
mikewhy
\- text straight-up cuts off:
[https://imgur.com/uYCAxbk](https://imgur.com/uYCAxbk)

\- very weird layout: [https://imgur.com/3uFfmSW](https://imgur.com/3uFfmSW)

\- mobile users may not even see content if they don't scroll left / right
after scrolling down a bit:
[https://imgur.com/UQrKtcy](https://imgur.com/UQrKtcy)

------
slezyr
Looks really close to Sublime Merge[1], which is great.

1: [https://www.sublimemerge.com/](https://www.sublimemerge.com/)

~~~
kennydude
After seeing quite a few new Git clients, Sublime Merge is still, imho, the
easiest to use

~~~
hprotagonist
i find magit even better, but of the non-emacs gits porcelains, smerge is way
at the top of the heap.

------
lindgrenj6
This looks amazing! Looks almost as slick as GitKraken, without requiring all
of my RAM+1GB to run.

Great work! I'll be recommending this to anyone who is looking for a git GUI
client.

~~~
app4soft
JFTR, Also take a look on _Guitar_ [0] - another Qt-based Git GUI client.

I actually use Guitar, but GitQlient is also installed on my PC.

[0] [https://github.com/soramimi/Guitar](https://github.com/soramimi/Guitar)

~~~
potiuper
What does GitQlient do that Guitar, QGit, CodeReview, GitAhead, or git-cola do
not?

~~~
francescmm
I can open multiple repositories at the same time in the same screen. I
actually forked from QGit becuase I was missing a lot of functionality and
inactivity in the UI.

I couldn't find a way to do that in QGit and GitAhead at least. I didn't try
the others.

------
stevebmark
This looks cool. I'm curious if people use Git's tree view, in any form, as
part of the regular workflow? If so, how? I have never found it useful,
intuitive, or usually readable / parsable. Not the graph drawn on the command
line, certainly not Github's tree view GUI of forked projects. I've also only
ever worked on a project with one or two main trunk branches (master, and
maybe dev), and feature branches, and very little merging between other
arbitrary branches.

~~~
Legogris
I use it as part of my daily flow.

One example: I work on a feature, which necessitates some refactoring, maybe
upgrading a dependency, and oh, while I'm in the middle of it I notice some
other, unrelated things, that need changing. In order to not have to break my
flow and think too much about which changes are required for what, I just
commit it all on the same local branch.

This then gets broken up into different branches in individual PRs.

~~~
stevebmark
I don't understand what this has to do with a visual view of branches and
merges

~~~
Legogris
It certainly helps me when splitting, comparing and picking changes between
branches. Also to keep track of how upstreams have changed compared to my
working branch before doing rebases.

Oh, and re Githubs fork view (which could be improved on the UI side), is
helpful when seeing if anyone else has picked up the ball on unmaintained
repos.

If you don't find it useful, fine, I don't think we all need to grok each
others personal workflows and motivate them to each other?

Maybe you can compare it to a visual file manager that visualizes your
directory structure as a tree; some people find it a necessity to get an
overview of their file system, some don't.

------
red_admiral
Tried this on win10: it seems to crash without an error message when I try and
open a repository.

~~~
francescmm
As @app4soft said, please open an issue and attach as many logs you can:
[https://github.com/francescmm/GitQlient/issues](https://github.com/francescmm/GitQlient/issues)

To be fair, in windows the performance is quite low due to Git Bash
performance as well. I need to improve that :)

------
ktpsns
The tree looks nice. Similar to gitk, sourcetree or bitbucket. For whatever
reason, github and gitlab cannot manage to get a similiar clean vertical git
tree view.

------
pkamb
Can this stage individual lines, and then display a view of only staged lines
and no un-staged lines? AKA only the things you are about to commit.

In SourceTree this is called "split view staging" and I find it indispensable.
But SourceTree is so old as slow and unsupported that I'm desperately trying
to find an alternative. Most of the existing GUI clients don't have this
option.

~~~
jiehong
SublimeMerge[1] allows staging only chunks of files.

[1]: [https://www.sublimemerge.com/](https://www.sublimemerge.com/)

~~~
emptysea
You can also select lines in the chunks of the file to stage individual lines.

Not super discoverable but pretty useful.

------
speedgoose
The link's layout is broken on mobile.

------
cbpowell
It certainly looks quite beautiful, but sadly UI interactions -- resizing,
clicking around, etc. -- seem to be fairly laggy at this point. Love the look-
and-feel, but I think the interactive performance is frustrating at this
point.

~~~
francescmm
Hi! Thanks for the feedback!

Which platform did you try it in? I'd love to have as much info as possible so
I can fix it :)

~~~
cbpowell
This is on Windows 10 x64. I'm interested to try again when you have a new
build.

------
wooptoo
There's also gitg which is fairly fast
[https://wiki.gnome.org/action/show/Apps/Gitg](https://wiki.gnome.org/action/show/Apps/Gitg)

------
jszymborski
Kinda looks like GitAhead, but I'll be sure to give this one a shot.

[https://gitahead.github.io/gitahead.com/](https://gitahead.github.io/gitahead.com/)

------
prydt
Great job on using QT!!

------
yatagarasu25
It is awful how all git gui clients completely ignore git submodules

------
chris-c-thomas
How would I get this to run on MacOS?

~~~
qaz_plm
Should be able to download the .app release from here
[https://github.com/francescmm/GitQlient/blob/master/docs/ind...](https://github.com/francescmm/GitQlient/blob/master/docs/index.md#appendix-
a-releases).

Looks to be build instructions as well in appendix b on the same page.

~~~
mikewhy
Sadly, if you follow the link to the releases section, there is no release for
macOS.

