My Marlin configs for Fabrikator Mini and CTC i3 Pro B
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Scott Lahteine e4fcf460e7 Marlin bugfix-2.0.x Version/README 7 lat temu
..
README.md Marlin bugfix-2.0.x Version/README 7 lat temu
firstpush Update Marlin+Github helper scripts 7 lat temu
ghtp Add ghtp script to set remotes to HTTP or SSL 8 lat temu
mfadd Update Marlin+Github helper scripts 7 lat temu
mfclean Marlin bugfix-2.0.x Version/README 7 lat temu
mfdoc Update Marlin+Github helper scripts 7 lat temu
mfinfo Marlin bugfix-2.0.x Version/README 7 lat temu
mfinit Update Marlin+Github helper scripts 7 lat temu
mfnew Update Marlin+Github helper scripts 7 lat temu
mfpr Update Marlin+Github helper scripts 7 lat temu
mfpub Update Marlin+Github helper scripts 7 lat temu
mfqp Update Marlin+Github helper scripts 7 lat temu
mfrb Update Marlin+Github helper scripts 7 lat temu
mfup Clean up excess whitespace 7 lat temu

README.md

Marlin Github Helper Scripts

Introduction

A Pull Request is often just the start of a longer process of patching and refining the code until it’s ready to merge. In that process it’s common to accumulate a lot of commits, some of which are non-functional. Before merging any PR, excess commits need to be “squashed” and sometimes rearranged or reworked to produce a well-packaged set of changes and keep the commit history relatively clean.

In addition, while a PR is being worked on other commits may be merged, leading to conflicts that need resolution. For this reason, it’s a best practice to periodically refresh the PR so the working copy closely reflects the final merge.

Merge vs Rebase

I recommend not using Github Desktop to sync and merge. Use the command line instead. Github Desktop provides a “merge” option, but for best results “git rebase” is recommended. Merge applies new work after your commits. This buries them and makes it hard to bring them together as a final packaged unit. Rebase moves your commits to the end of the branch, ensuring that your commits will be adapted to the current code. This makes it easier to keep revising the commits in-place.

The Scripts

The following scripts can be used on macOS or Linux to speed up the process of working with Marlin and submitting changes to the project.

Remotes

File Description
mfadd [user] Add Remote - Add another Github user’s fork of Marlin as a remote, then fetch it. After this you can check out one of their branches and either make a PR targeted at their fork or targeted at bugfix-2.0.x.
mfinit Init Working Copy - Creates a remote named ‘upstream’ (for use by the other scripts) pointing to the ‘MarlinFirmware’ fork. Use once after checking out your fork.

Branches

File Description
mfnew [branch] New Branch - Creates a new branch based on upstream/[PR-target]. All new work should start here.
firstpush Push the current branch to ‘origin’ -your fork on Github- and set it to track ‘origin’. The branch needs to reside on Github before you can use it to make a PR.

Making / Amending PRs

File Description
mfpr Pull Request - Open the Compare / Pull Request page on Github for the current branch.
mfrb Do a git rebase then git rebase -i of the current branch onto upstream/[PR-target]. Use this to edit your commits anytime.
mfqp Quick Patch - Commit all current changes as “patch”, mfrb, and git push -f.

Documentation

File Description
mfdoc Build the documentation and preview it locally.
mfpub Build the documentation and publish it to marlinfw.org via Github.

Utilities

File Description
ghtp -[h/s] Set the protocol to use for all remotes. -h for HTTPS, -s for SSL.
mfinfo This utility script is used by the other scripts to get:
- The upstream project (’MarlinFirmware’)
- the ‘origin’ project (i.e., your Github username),
- the repository name (’Marlin’),
- the PR target branch (’bugfix-2.0.x’), and
- the current branch (or the first command-line argument).

By itself, mfinfo simply prints these values to the console.
mfclean      Prune your merged and remotely-deleted branches.

Examples

Coming Soon!