Skip to content
Snippets Groups Projects
Forked from Linaro / linux / kernel / torvalds / linux
This fork has diverged from the upstream repository.
  • Miguel Ojeda's avatar
    .gitattributes: set diff driver for Rust source code files · 8f8d4be9
    Miguel Ojeda authored
    Git supports a builtin Rust diff driver [1] since v2.23.0 (2019).
    
    It improves the choice of hunk headers in some cases, such as
    diffs within methods, since those are indented in Rust within
    an `impl` block, and therefore the default diff driver would
    pick the outer `impl` block instead (rather than the method
    where the changed code is).
    
    For instance, with the default diff driver:
    
        @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter {
                 // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`.
                 let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos);
    
        +        test_diff_driver();
        +
                 if len_to_copy > 0 {
                     // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end`
                     // yet, so it is valid for write per the type invariants.
    
    With the Rust diff driver:
    
        @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result {
                 // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`.
                 let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos);
    
        +        test_diff_driver();
        +
                 if len_to_copy > 0 {
                     // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end`
                     // yet, so it is valid for write per the type invariants.
    
    Thus set the `rust` diff driver for `*.rs` source files.
    
    The Rust repository also does so since 2020 [2].
    
    Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1]
    Link: https://github.com/rust-lang/rust/pull/78882
    
     [2]
    Reviewed-by: default avatarGary Guo <gary@garyguo.net>
    Reviewed-by: default avatarMartin Rodriguez Reboredo <yakoyoku@gmail.com>
    Reviewed-by: default avatarBenno Lossin <benno.lossin@proton.me>
    Link: https://lore.kernel.org/r/20230418233048.335281-1-ojeda@kernel.org
    
    
    [ Added link to Rust repository ]
    Signed-off-by: default avatarMiguel Ojeda <ojeda@kernel.org>
    8f8d4be9
.gitattributes 105 B