@@ -368,6 +368,9 @@ pub struct Config {
368
368
/// The paths to work with. For example: with `./x check foo bar` we get
369
369
/// `paths=["foo", "bar"]`.
370
370
pub paths : Vec < PathBuf > ,
371
+
372
+ /// Command for visual diff display, e.g. `diff-tool --color=always`.
373
+ pub compiletest_diff_tool : Option < String > ,
371
374
}
372
375
373
376
#[ derive( Clone , Debug , Default ) ]
@@ -892,6 +895,7 @@ define_config! {
892
895
android_ndk: Option <PathBuf > = "android-ndk" ,
893
896
optimized_compiler_builtins: Option <bool > = "optimized-compiler-builtins" ,
894
897
jobs: Option <u32 > = "jobs" ,
898
+ compiletest_diff_tool: Option <String > = "compiletest-diff-tool" ,
895
899
}
896
900
}
897
901
@@ -1512,6 +1516,7 @@ impl Config {
1512
1516
android_ndk,
1513
1517
optimized_compiler_builtins,
1514
1518
jobs,
1519
+ compiletest_diff_tool,
1515
1520
} = toml. build . unwrap_or_default ( ) ;
1516
1521
1517
1522
config. jobs = Some ( threads_from_config ( flags. jobs . unwrap_or ( jobs. unwrap_or ( 0 ) ) ) ) ;
@@ -2158,6 +2163,7 @@ impl Config {
2158
2163
config. rust_debuginfo_level_tests = debuginfo_level_tests. unwrap_or ( DebuginfoLevel :: None ) ;
2159
2164
config. optimized_compiler_builtins =
2160
2165
optimized_compiler_builtins. unwrap_or ( config. channel != "dev" ) ;
2166
+ config. compiletest_diff_tool = compiletest_diff_tool;
2161
2167
2162
2168
let download_rustc = config. download_rustc_commit . is_some ( ) ;
2163
2169
// See https://github.com/rust-lang/compiler-team/issues/326
@@ -2754,25 +2760,25 @@ impl Config {
2754
2760
}
2755
2761
} ;
2756
2762
2757
- let files_to_track = & [
2758
- self . src . join ( "compiler" ) ,
2759
- self . src . join ( "library" ) ,
2760
- self . src . join ( "src/version" ) ,
2761
- self . src . join ( "src/stage0" ) ,
2762
- self . src . join ( "src/ci/channel" ) ,
2763
- ] ;
2763
+ let files_to_track =
2764
+ & [ "compiler" , "library" , "src/version" , "src/stage0" , "src/ci/channel" ] ;
2764
2765
2765
2766
// Look for a version to compare to based on the current commit.
2766
2767
// Only commits merged by bors will have CI artifacts.
2767
- let commit =
2768
- get_closest_merge_commit ( Some ( & self . src ) , & self . git_config ( ) , files_to_track) . unwrap ( ) ;
2769
- if commit. is_empty ( ) {
2770
- println ! ( "ERROR: could not find commit hash for downloading rustc" ) ;
2771
- println ! ( "HELP: maybe your repository history is too shallow?" ) ;
2772
- println ! ( "HELP: consider disabling `download-rustc`" ) ;
2773
- println ! ( "HELP: or fetch enough history to include one upstream commit" ) ;
2774
- crate :: exit!( 1 ) ;
2775
- }
2768
+ let commit = match self . last_modified_commit ( files_to_track, "download-rustc" , if_unchanged)
2769
+ {
2770
+ Some ( commit) => commit,
2771
+ None => {
2772
+ if if_unchanged {
2773
+ return None ;
2774
+ }
2775
+ println ! ( "ERROR: could not find commit hash for downloading rustc" ) ;
2776
+ println ! ( "HELP: maybe your repository history is too shallow?" ) ;
2777
+ println ! ( "HELP: consider disabling `download-rustc`" ) ;
2778
+ println ! ( "HELP: or fetch enough history to include one upstream commit" ) ;
2779
+ crate :: exit!( 1 ) ;
2780
+ }
2781
+ } ;
2776
2782
2777
2783
if CiEnv :: is_ci ( ) && {
2778
2784
let head_sha =
@@ -2787,31 +2793,7 @@ impl Config {
2787
2793
return None ;
2788
2794
}
2789
2795
2790
- // Warn if there were changes to the compiler or standard library since the ancestor commit.
2791
- let has_changes = !t ! ( helpers:: git( Some ( & self . src) )
2792
- . args( [ "diff-index" , "--quiet" , & commit] )
2793
- . arg( "--" )
2794
- . args( files_to_track)
2795
- . as_command_mut( )
2796
- . status( ) )
2797
- . success ( ) ;
2798
- if has_changes {
2799
- if if_unchanged {
2800
- if self . is_verbose ( ) {
2801
- println ! (
2802
- "WARNING: saw changes to compiler/ or library/ since {commit}; \
2803
- ignoring `download-rustc`"
2804
- ) ;
2805
- }
2806
- return None ;
2807
- }
2808
- println ! (
2809
- "WARNING: `download-rustc` is enabled, but there are changes to \
2810
- compiler/ or library/"
2811
- ) ;
2812
- }
2813
-
2814
- Some ( commit. to_string ( ) )
2796
+ Some ( commit)
2815
2797
}
2816
2798
2817
2799
fn parse_download_ci_llvm (
0 commit comments