Skip to main content

Git cOMPare

Project description

GOMP (Git cOMPare)

GOMP is a Git-based tool for comparing branches, designed to work with a rebase-oriented Git workflow. Markforged uses GOMP as both a daily tool for handling commits and merges and as a powerful way to visualize complex histories while preparing releases.

Results of GOMP: feature branch vs main

Read about the Markforged Git workflow on our software engineering blog.

Installing GOMP

GOMP is based on Python 3 and has no dependencies outside of the Python standard library. It is available for installation over pip:

$ pip install gomp

Alternately, you can clone the repository and include the following alias in your shell profile:

$ alias gomp="python /path/to/gomp/gomp.py"

Gomp has been tested on MacOS only but should be compatible with most flavors of Linux.

Using GOMP

With gomp installed, navigate to any directory that has a git repository with multiple branches. Our hypothetical repository has two branches: feature and main. Run:

$ gomp feature main

This command shows a visual comparison between the two branches.

Use the flag --key to see a key explaining the color codes.

Use the flag --recut to receive output that, when entered into an interactive rebase, will put commits from feature on top of commits from main.

GOMP's output is color-coded:

  • Green text means that the commit matches between branches.
  • Yellow text means that a commit on the both branches but the commits are in a different order.
  • Red text means that a commit is on the target branch and not the source branch.
  • Purple text means that a commit is on the source branch and not the target branch.

Contributing to GOMP

Thank you for wanting to help us improve GOMP. Markforged welcomes pull requests to improve GOMP's functionality, reliability, and ease of use. All contributions are subject to our guidelines.

You can learn more about the process of preparing an internal tool for public use on our engineering blog.

The Python 2 version of GOMP is not under active development and is accepting bug fixes only.

GOMP has no dependencies outside of the Python standard library, we'd like to keep it that way.

License

GOMP is released by Markforged under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gomp-1.0.2.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gomp-1.0.2-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file gomp-1.0.2.tar.gz.

File metadata

  • Download URL: gomp-1.0.2.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.3

File hashes

Hashes for gomp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 6b399c252f983c5aa7133bb3bb4f51134a93f883f91a90be4f835d4091b6d0e7
MD5 3530b3d4d26bccd7bbdcb30d03192568
BLAKE2b-256 374e56f96d9e1a584a2548a0e0dc4f000b78bc76767dae73c5765be8a5902923

See more details on using hashes here.

File details

Details for the file gomp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: gomp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.3

File hashes

Hashes for gomp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b6694e72ab92339661c63a69d2fc706c58856f553474b785f005e4f75524deb4
MD5 eb4618e3dd7d0a5d6e017ccfcceaff10
BLAKE2b-256 6543f823151b45b1a4c0aebceacfd1a6d1a1fe11929b0903f21b4c61c8d2bbe3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page