Merge Marlin 1.1.8

This commit is contained in:
David Ramiro
2019-01-31 12:25:28 +01:00
parent 8aa4ed6945
commit 5893bcbcc0
320 changed files with 34109 additions and 50001 deletions

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "${SED} -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration.h"
eval "sed -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration.h"
done

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "${SED} -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration_adv.h"
eval "sed -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration_adv.h"
done

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "${SED} -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration.h"
eval "sed -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration.h"
done

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do
eval "${SED} -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration_adv.h"
eval "sed -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration_adv.h"
done

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
eval "${SED} -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration.h"
eval "sed -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration.h"

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
eval "${SED} -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration_adv.h"
eval "sed -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration_adv.h"

View File

@@ -1,5 +1,3 @@
#!/usr/bin/env bash
SED=$(which gsed || which sed)
eval "${SED} -i 's/\(#define \b${2}\b\).*$/\1 ${3}/g' Marlin/src/pins/pins_${1}.h"
eval "sed -i 's/\(#define \b${2}\b\).*$/\1 ${3}/g' Marlin/pins_${1}.h"

View File

@@ -4,38 +4,39 @@
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 into upstream `MarlinFirmware`.
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
If you plan to create PRs and work on them after submission I recommend not using Github Desktop to sync and merge. Use the command line instead. Github Desktop provides a "merge" option, but I've found that "`git rebase`" is much cleaner and easier to manage. Merge applies new work _after_ your commits, which buries them deeper in the commit history and makes it hard to bring them together as a final packaged unit. Rebase helpfully moves your commits to the tip of the branch, ensuring that your commits are adapted to the current code. This makes it easier to keep revising the commits in-place.
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 any system with a GNU environment to speed up the process of working with Marlin branches and submitting changes to the project.
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 and Fetch Remote - Add another Github user's fork of Marlin as a remote, then fetch it. Optionally, check out one of their branches.
mfinit|Init Working Copy - Create a remote named '`upstream`' (for use by the other scripts) pointing to the '`MarlinFirmware`' fork. This only needs to be used once. Newer versions of Github Desktop may create `upstream` on your behalf.
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-1.1.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 with this command.
mffp|Fast Push - Push the HEAD or a commit ID to `upstream` immediately. Requires privileged access to the MarlinFirmware repo.
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", then do `mfrb`, followed by `git push -f` if no conflicts need resolution.
mfqp|Quick Patch - Commit all current changes as "patch", `mfrb`, and `git push -f`.
#### Documentation

View File

@@ -2,22 +2,12 @@
#
# mfadd
#
# Add a remote and fetch it. Optionally copy a branch.
#
# Example: mfadd thinkyhead:patch-1 copy_of_patch-1
# Add a remote and fetch it
#
[[ $# > 0 && $# < 3 && $1 != "-h" && $1 != "--help" ]] || { echo "Usage: `basename $0` (user | ref copyname)" 1>&2 ; exit 1; }
[[ $# == 1 ]] || { echo "Usage: `basename $0` user" 1>&2 ; exit 1; }
# If a colon is included, split the parts
if [[ $1 =~ ":" ]]; then
IFS=':' read -a DATA <<< "$1"
USER=${DATA[0]}
BRANCH=${DATA[1]}
NAME=$2
else
USER=$1
fi
USER=$1
MFINFO=$(mfinfo) || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"
@@ -26,7 +16,5 @@ REPO=${INFO[2]}
set -e
echo "Adding and fetching $USER..."
git remote add "$USER" "git@github.com:$USER/$REPO.git" >/dev/null 2>&1 || echo "Remote exists."
git remote add "$USER" "git@github.com:$USER/$REPO.git"
git fetch "$USER"
[[ ! -z "$BRANCH" && ! -z "$NAME" ]] && git checkout $USER/$BRANCH -b $NAME

View File

@@ -6,7 +6,7 @@
# Great way to clean up your branches after messing around a lot
#
KEEP="RC|RCBugFix|dev|master|bugfix-1|bugfix-2"
KEEP="RC|RCBugFix|dev|master|bugfix-1"
echo "Fetching latest upstream and origin..."
git fetch upstream

View File

@@ -16,8 +16,6 @@ usage() {
echo "Usage: `basename $0` [1|2] [branch]" 1>&2
}
[[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { usage; exit 1; }
CURR=$(git branch 2>/dev/null | grep ^* | sed 's/\* //g')
[[ -z $CURR ]] && { echo "No git repository here!" 1>&2 ; exit 1; }
[[ $CURR == "(no"* ]] && { echo "Git is busy with merge, rebase, etc." 1>&2 ; exit 1; }

View File

@@ -9,7 +9,7 @@ usage() {
echo "Usage: `basename $0` [1|2] [name]" 1>&2
}
[[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { usage; exit 1; }
[[ $# < 3 ]] || { usage ; exit 1 ; }
MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"
@@ -31,4 +31,4 @@ case "$#" in
esac
git fetch upstream
git checkout --no-track upstream/$TARG -b $BRANCH
git checkout upstream/$TARG -b $BRANCH

View File

@@ -5,7 +5,7 @@
# Make a PR of the current branch against RCBugFix or dev
#
[[ $# < 2 && $1 != "-h" && $1 != "--help" ]] || { echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1; }
[[ $# < 2 ]] || { echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1; }
MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"

View File

@@ -9,7 +9,7 @@
# any permanent changes to 'master'.
#
[[ $# < 2 && $1 != "-h" && $1 != "--help" ]] || { echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1; }
[[ $# < 2 ]] || { echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1; }
MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"

View File

@@ -5,7 +5,7 @@
# Add all changed files, commit as "patch", do `mfrb` and `git push -f`
#
[[ $# < 2 && $1 != "-h" && $1 != "--help" ]] || { echo "Usage: `basename $0` [1|2]" 1>&2 ; exit 1; }
[[ $# < 2 ]] || { echo "Usage: `basename $0` [1|2]" 1>&2 ; exit 1; }
MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"

View File

@@ -5,7 +5,7 @@
# Do "git rebase -i" against the "target" branch (bugfix-1.1.x, bugfix-2.0.x, or master)
#
[[ $# < 2 && $1 != "-h" && $1 != "--help" ]] || { echo "Usage: `basename $0` [1|2]" 1>&2 ; exit 1; }
[[ $# < 2 ]] || { echo "Usage: `basename $0` [1|2]" 1>&2 ; exit 1; }
MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"

View File

@@ -7,7 +7,7 @@
# - Force-push the branch to 'origin'
#
[[ $# < 3 && $1 != "-h" && $1 != "--help" ]] || { echo "Usage: `basename $0` [1|2] [branch]" 1>&2 ; exit 1; }
[[ $# < 3 ]] || { echo "Usage: `basename $0` [1|2] [branch]" 1>&2 ; exit 1; }
MFINFO=$(mfinfo "$@") || exit 1
IFS=' ' read -a INFO <<< "$MFINFO"

View File

@@ -28,7 +28,7 @@ fi
echo -n "Building list of missing strings..."
for i in $(awk '/#ifndef/{print $2}' language_en.h); do
[[ $i == "LANGUAGE_EN_H" || $i == "CHARSIZE" ]] && continue
[[ $i == "LANGUAGE_EN_H" ]] && continue
LANG_LIST=""
for j in $TEST_LANGS; do
[[ $(grep -c " ${i} " language_${j}.h) -eq 0 ]] && LANG_LIST="$LANG_LIST $j"
@@ -40,8 +40,5 @@ done
echo
for K in $( printf "%s\n" "${!STRING_MAP[@]}" | sort ); do
case "$#" in
1 ) echo $K ;;
* ) printf "%-35s :%s\n" "$K" "${STRING_MAP[$K]}" ;;
esac
printf "%-35s :%s\n" "$K" "${STRING_MAP[$K]}"
done