aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-09-01 08:38:17 +0100
committerAleksey Kladov <[email protected]>2020-09-01 08:50:48 +0100
commitdddd5806512f6242dc6e2f80f9adf834041610df (patch)
tree9d9b81c6d96009dfcb4306bce60295981bb63799
parentc31a43d360b9d8c75e56af6abbc1b976a9d5e929 (diff)
"How I survived Git" tips
-rw-r--r--.github/workflows/ci.yaml2
-rw-r--r--xtask/tests/tidy.rs40
2 files changed, 32 insertions, 10 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index fa276e2bf..a19bc9ad3 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -32,7 +32,7 @@ jobs:
32 uses: actions/checkout@v2 32 uses: actions/checkout@v2
33 with: 33 with:
34 ref: ${{ github.event.pull_request.head.sha }} 34 ref: ${{ github.event.pull_request.head.sha }}
35 fetch-depth: 5 35 fetch-depth: 20
36 36
37 # We need to disable the existing toolchain to avoid updating rust-docs 37 # We need to disable the existing toolchain to avoid updating rust-docs
38 # which takes a long time. The fastest way to do this is to rename the 38 # which takes a long time. The fastest way to do this is to rename the
diff --git a/xtask/tests/tidy.rs b/xtask/tests/tidy.rs
index c276b6307..02b3afc96 100644
--- a/xtask/tests/tidy.rs
+++ b/xtask/tests/tidy.rs
@@ -52,15 +52,37 @@ fn rust_files_are_tidy() {
52 52
53#[test] 53#[test]
54fn check_merge_commits() { 54fn check_merge_commits() {
55 let cmd_output = 55 let stdout = run!("git rev-list --merges --invert-grep --author 'bors\\[bot\\]' HEAD~19.."; echo = false)
56 run!("git rev-list --merges --invert-grep --author 'bors\\[bot\\]' HEAD~4.."; echo = false); 56 .unwrap();
57 match cmd_output { 57 if !stdout.is_empty() {
58 Ok(out) => { 58 panic!(
59 if !out.is_empty() { 59 "
60 panic!("Please rebase your branch on top of master by running `git rebase master`"); 60Merge commits are not allowed in the history.
61 } 61
62 } 62When updating a pull-request, please rebase your feature branch
63 Err(e) => panic!("{}", e), 63on top of master by running `git rebase master`. If rebase fails,
64you 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
80And don't fear to mess something up during a rebase -- you can
81always restore the previous state using `git ref-log`:
82
83https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/#redo-after-undo-local
84"
85 );
64 } 86 }
65} 87}
66 88