@@ -52,15 +52,37 @@ fn rust_files_are_tidy() {
5252
5353#[ test]
5454fn check_merge_commits ( ) {
55- let cmd_output =
56- run ! ( "git rev-list --merges --invert-grep --author 'bors\\ [bot\\ ]' HEAD~4.." ; echo = false ) ;
57- match cmd_output {
58- Ok ( out) => {
59- if !out. is_empty ( ) {
60- panic ! ( "Please rebase your branch on top of master by running `git rebase master`" ) ;
61- }
62- }
63- Err ( e) => panic ! ( "{}" , e) ,
55+ let stdout = run ! ( "git rev-list --merges --invert-grep --author 'bors\\ [bot\\ ]' HEAD~19.." ; echo = false )
56+ . unwrap ( ) ;
57+ if !stdout. is_empty ( ) {
58+ panic ! (
59+ "
60+ Merge commits are not allowed in the history.
61+
62+ When updating a pull-request, please rebase your feature branch
63+ on top of master by running `git rebase master`. If rebase fails,
64+ you can re-apply your changes like this:
65+
66+ # Abort in-progress rebase, if any.
67+ $ git rebase --abort
68+
69+ # Make the branch point to the latest commit from master,
70+ # while maintaining your local changes uncommited.
71+ $ git reset --soft origin/master
72+
73+ # Commit all changes in a single batch.
74+ $ git commit -am'My changes'
75+
76+ # Push the changes. We did a rebase, so we need `--force` option.
77+ # `--force-with-lease` is a more safe (Rusty) version of `--force`.
78+ $ git push --force-with-lease
79+
80+ And don't fear to mess something up during a rebase -- you can
81+ always restore the previous state using `git ref-log`:
82+
83+ https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/#redo-after-undo-local
84+ "
85+ ) ;
6486 }
6587}
6688
0 commit comments