Skip to content

MarkForged/GOMP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.