• git is a complex source code repository management system that completely relies on file transactions
    • this means: there is no running service or open port (except if git-over-ssh is used, all it needs for network multi developer cooperation is a safe-as-possible ssh server)
    • it is also possible to clone a repository locally:
      • cd /home/user/temp
      • git clone /home/user/projects/test.git; # would clone-checkout that repo into temp
  • requirements:
    • should support git over ssh very well
    • should be easy to use and get started
      • that’s the whole point of such a program, making a complex system simple = accessible = usable
    • should be cross-os so users can help each other howto do this and that
    • should work reliably
    • should help solve gitty problems
  • when researching git guis in 2024:
hostnamectl; # tested with 

Static hostname: debian12
Virtualization: kvm
Operating System: Debian GNU/Linux 12 (bookworm) 
Kernel: Linux 6.1.0-18-amd64
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC _Q35 + ICH9, 2009_
Firmware Version: 1.16.2-debian-1.16.2-1
  • written in perl even hosted where the git src are hosted on kernel.org (the Linus approved gui?)
  • look like this:
  • there is more to be found here: “Cogito (originally git-pasky) is a revision control system layered on top of Git. It is historically the first Git frontend, which appeared in April 2005″ (src)
  • SmartGit by syntevo.com (download) Made in Germany + Austria (?) (syntevo GmbH)
    • + cross-os
    • + dark-theme available 😀
    • + “free of charge by open-source developers, employees and students of public academic institutions and employees of public charitables organizations primarily targeting philanthropy, health research, education or social well-being” (src) 😀 (here is the licence text)
      • problem: the user or developer will still have to signup and register at  syntevo GmbH and prove that somehow
  • how to setup and git clone a repo via ssh with SmartGit:
    1. # as non-root user “user”
      1. mkdir ~/software
      2. cd ~/software
    2. download (current version)
    3. unpack
    4. start it
      • /home/user/software/smartgit/bin/smartgit.sh
  • so when adding a git repo via ssh make sure to use this url:
    • ssh://user@192.168.122.1:/home/user/projects/test.git
    • not this url: git clone user@192.168.122.1:/home/user/projects/test.git
  • it’s a bit pricey: there are several modes
    • test phase: ~ 30 days trial evaluation period
    • subscription: $59 per year
    • one-time-payment including 1 to 3 year support and updates:
        • 1 year of updates and support: $109
        • 2 year of updates and support: $147
        • 3 year of updates and support $182
        • user can use a single license for up to 5 real or virtual machines <- this is pretty cool actually
    • it reported:
      • “Following GTK3 theme was detected: Menta (GTK version: 3.24.38).”
        “If you experience some strange GUI problems, please try to add following line to:”
        echo “org.eclipse.swt.internal.gtk.noThemingFixes=true” >> ~/.config/smartgit/23.1/smartgit.properties
  • how to integrate smartgit with eclipse?
  • gitahead.com
    • https://github.com/gitahead/gitahead
    • just4info: written in C++
    • – did not compile 🙁 (instructions either oudated or debian-incompatible?)
    • + cross-os
    • + MIT licence
    • howto install: (requires a bit of compilation)
    • su - root
      # install compiler and build tools
      apt -y install build-essential module-assistant gcc make cmake perl dkms linux-headers-$(uname -r);
      apt -y install ninja-build  qttools5-dev qttools5-dev-tools
      apt search qtbase|grep dev; # search for requirements Qt (required >= 5.9)
      apt -y install qtbase5-dev qtbase5-dev-tools qt6-base-dev
      Ctrl+D # back to non-root
      mkdir ~/software
      cd ~/software
      git clone https://github.com/gitahead/gitahead.git
      cd gitahead
      git submodule init
      git submodule update
      cd dep/openssl/openssl
      ./config -fPIC
      make
      
      cd ~/software/gitahead/
      # configure the build
      mkdir -p build/release
      cd build
      # fails
      cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../.
      # also fails but with more details
      cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../. --debug-find-pkg=Qt6LinguistTools -DQT_DEBUG_FIND_PACKAGE=ON
      
      qtchooser -print-env
      QT_SELECT="default"
      QTTOOLDIR="/usr/lib/qt5/bin"
      QTLIBDIR="/usr/lib/x86_64-linux-gnu"
      
      # tried multiple versions of
       cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../. -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu
      
      
      

how to automatically git pull download refresh repo with latest changes before editor gui ide start?

even when ChatGPT INSISTS eclipse+egit can do that (somehow, it would not be hard to implement, but it seems this functionality was forgotten) it is possible to script it like this:

vim /scripts/eclipse.sh


#!/bin/bash
echo "===== refresh download git pull git repos before eclipse start ===="

SERVER="IP.OF.GIT.REPO.SRV"
echo "... if repo server is available $SERVER"

check_connection()
{
   ping -c 1 $SERVER > /dev/null 2>&1
   return $?
}

download_refresh_git_pull_repos()
{
   echo "... then download refresh git pull latest changes of repos"
   cd /home/user/projects/gitrepo1; git pull;
   cd /home/user/projects/gitrepo2; git pull;
   echo "...starting eclipse"
   /home/user/software/eclipse/install/eclipse/eclipse
}

while true; do
   if ! check_connection; then
      echo "... vpn not available, please start vpn";
      sleep 1;
   else
      download_refresh_git_pull_repos;
      break;
   fi
done

how to start it properly?

under most GNU Linux desktops there are terminal programs, that allow:

launch a new terminal: like “gnome-terminal -e cmd” or “xterm -hold -e cmd”

to run a script inside it

mate-terminal -e /scripts/eclipse.sh

liked this article?

  • only together we can create a truly free world
  • plz support dwaves to keep it up & running!
  • (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
  • really really hate advertisement
  • contribute: whenever a solution was found, blog about it for others to find!
  • talk about, recommend & link to this blog and articles
  • thanks to all who contribute!
admin