Skip to content

Repository files navigation

Pawmmit Status

Pawmmit

Pawmmit is a graphical Git client designed to help you understand and manage your source code history. The latest stable release is available either as pre-built flatpak for Linux, 32 / 64 binary for Windows, macOS, or can be built from source by following the directions below.

The latest development version is available pre-built as well.

Pawmmit is a fork of Gittyup, which is a continuation of the GitAhead client. The rationale behind the fork is provided here

Pawmmit

Table of contents

Features

To get an overview of the current features please have a look at the GitHub Page

How to Get Help

Ask questions about building or using Pawmmit on Stack Overflow by including the pawmmit tag. Remember to search for existing questions before creating a new one.

Report bugs in Pawmmit by opening an issue in the issue tracker. Remember to search for existing issues before creating a new one.

Build Environment

  • C++17 compiler
    • Windows - MSVC >= 2019 recommended
    • Linux - GCC >= 9 / Clang >= 10 recommended
    • macOS - Xcode >= 12 recommended
  • Meson >= 1.1
  • Ninja
  • Python 3

Dependencies

Must be provided by the system (install via your package manager / Homebrew / vcpkg) - Meson can't build these itself:

  • Qt (required >= 6.7)
  • libgit2 (>= 1.9) - its CMake build doesn't translate to Meson cleanly enough to fall back on, so this is the one library every platform needs a real package for. On macOS, brew install libgit2; on Windows, vcpkg install libgit2[ssh] (see .github/workflows/build.yml).

On Debian/Ubuntu, for example:

sudo apt install meson ninja-build pkg-config python3 \
    qt6-base-dev qt6-tools-dev libqt6core5compat6-dev libgit2-dev

Fetched automatically as Meson subprojects when no system package is found (needs network on first configure; see subprojects/*.wrap) - install the system package instead if you'd rather not build these from source:

  • libssh2, hunspell (>= 1.7), cmark (library + the cmark command-line tool), lua (>= 5.3)
  • scintilla, lexilla, scintillua, lpeg
  • zip (test suite only)

How to Build

meson setup build
meson compile -C build

For an optimized build pass --buildtype=release to meson setup. If Qt is in a non-standard location, put its bin directory on PATH or set PKG_CONFIG_PATH / CMAKE_PREFIX_PATH so Meson can find it.

Run the tests

meson test -C build

Install

meson install -C build --destdir <staging-dir>

On macOS and Windows meson install also runs the packaging step (pack/deploy.py): it bundles Qt with macdeployqt / windeployqt and writes a .dmg / NSIS .exe into build/pack/.

A Convenient Shell Script for Ubuntu is available here, and will install all the necessary prerequisites, and build a release version for immediate use.

How to Install

TBD (build from source for now)

How to Contribute

We welcome contributions of all kinds, including bug fixes, new features, documentation and translations. By contributing, you agree to release your contributions under the terms of the license.

Contribute by following the typical GitHub workflow for pull requests. Fork the repository and make changes on a new named branch. Create pull requests against the main branch. Follow the seven guidelines to writing a great commit message.

Prior to committing a change, please use cl-fmt.sh to ensure your code adheres to the formatting conventions for this project. You can also use the setup-env.sh script to install a pre-commit hook which will automatically run clang-format against all modified files.

Prior to pushing a change, please ensure you run the unit tests to avoid any regressions. These are run using ctest in <build-dir>.

License

This project is licensed under the GNU General Public License, version 3 or (at your option) any later version. See LICENSE.md for the full text.

Portions originate in Gittyup and its predecessor GitAhead, which were published under the MIT license. That MIT notice is retained in NOTICE.md and continues to apply to the pre-existing code; the combined work is distributed under the GPL as stated above.

About

Pawmmit is a fast, native git client focused on performance, usability and safe history handling. It's fully open-source, and brings professional grade features to your workflow

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages