This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -140,6 +140,7 @@ pub fn get_closest_merge_commit(
140140 // cd \"/checkout\" && \"git\" \"merge-base\" \"origin/master\" \"HEAD\"\nexpected success, got: exit status: 1\n"
141141 // ```
142142 // Investigate and resolve this issue instead of skipping it like this.
143+ // NOTE (2025-03): this is probably caused by CI using a sparse checkout.
143144 ( channel == "nightly" || !CiEnv :: is_rust_lang_managed_ci_job ( ) )
144145 {
145146 git_upstream_merge_base ( config, git_dir) . unwrap ( )
@@ -150,11 +151,18 @@ pub fn get_closest_merge_commit(
150151 }
151152 } ;
152153
154+ // Now that rust-lang/rust is the only repo using bors, we can search the entire
155+ // history for a bors commit, not just "first parents". This is crucial to make
156+ // this logic work when the user has currently checked out a subtree sync branch.
157+ // At the same time, we use this logic in CI where only a tiny part of the history
158+ // is even checked out, making this kind of history search very fragile. It turns
159+ // out that by adding `--diff-merges=first-parent`, we get a usable reply
160+ // even for sparse checkouts: it will just return the most recent bors commit.
153161 git. args ( [
154162 "rev-list" ,
155163 & format ! ( "--author={}" , config. git_merge_commit_email) ,
156164 "-n1" ,
157- "--first-parent" ,
165+ "--diff-merges= first-parent" ,
158166 & merge_base,
159167 ] ) ;
160168
You can’t perform that action at this time.
0 commit comments