@@ -45,7 +45,7 @@ pub(crate) mod convert_to_diffable {
4545 & mut buf,
4646 ) ?;
4747 assert ! ( out. driver_index. is_none( ) , "there was no driver" ) ;
48- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
48+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
4949 assert_eq ! ( buf. as_bstr( ) , a_content, "there is no transformations configured" ) ;
5050
5151 let link_name = "link" ;
@@ -62,7 +62,7 @@ pub(crate) mod convert_to_diffable {
6262 ) ?;
6363
6464 assert ! ( out. driver_index. is_none( ) ) ;
65- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
65+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
6666 assert_eq ! (
6767 buf. as_bstr( ) ,
6868 a_name,
@@ -86,7 +86,7 @@ pub(crate) mod convert_to_diffable {
8686 ) ?;
8787
8888 assert ! ( out. driver_index. is_none( ) , "there was no driver" ) ;
89- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
89+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
9090 assert_eq ! ( buf. as_bstr( ) , b_content, "there is no transformations configured" ) ;
9191 }
9292
@@ -203,7 +203,7 @@ pub(crate) mod convert_to_diffable {
203203 assert ! ( out. driver_index. is_none( ) ) ;
204204 assert_eq ! (
205205 out. data,
206- Some ( pipeline:: Data :: Buffer ) ,
206+ Some ( pipeline:: Data :: Buffer { is_derived : false } ) ,
207207 "links are always read and never considered large"
208208 ) ;
209209 assert_eq ! ( buf. as_bstr( ) , large_content) ;
@@ -340,7 +340,7 @@ pub(crate) mod convert_to_diffable {
340340 & mut buf,
341341 ) ?;
342342 assert ! ( out. driver_index. is_none( ) , "there was no driver" ) ;
343- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
343+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
344344 assert_eq ! (
345345 buf. as_bstr( ) ,
346346 a_content,
@@ -361,7 +361,7 @@ pub(crate) mod convert_to_diffable {
361361 & mut buf,
362362 ) ?;
363363 assert ! ( out. driver_index. is_none( ) , "there was no driver" ) ;
364- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
364+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
365365 assert_eq ! (
366366 buf. as_bstr( ) ,
367367 "a\n b" ,
@@ -386,7 +386,7 @@ pub(crate) mod convert_to_diffable {
386386 ) ?;
387387
388388 assert ! ( out. driver_index. is_none( ) ) ;
389- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
389+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
390390 assert_eq ! (
391391 buf. as_bstr( ) ,
392392 link_content,
@@ -411,7 +411,7 @@ pub(crate) mod convert_to_diffable {
411411 ) ?;
412412
413413 assert ! ( out. driver_index. is_none( ) , "there was no driver" ) ;
414- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
414+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
415415 assert_eq ! ( buf. as_bstr( ) , "b-content\r \n " , "LF to CRLF by worktree filtering" ) ;
416416
417417 let mut db = ObjectDb :: default ( ) ;
@@ -429,7 +429,7 @@ pub(crate) mod convert_to_diffable {
429429 ) ?;
430430
431431 assert ! ( out. driver_index. is_none( ) , "there was no driver" ) ;
432- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
432+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
433433 assert_eq ! ( buf. as_bstr( ) , "b\n " , "no filtering was performed at all" ) ;
434434
435435 Ok ( ( ) )
@@ -524,11 +524,11 @@ pub(crate) mod convert_to_diffable {
524524 ) ?;
525525
526526 assert_eq ! ( out. driver_index, Some ( 0 ) ) ;
527- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
527+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : true } ) ) ;
528528 assert_eq ! (
529529 buf. as_bstr( ) ,
530530 "\0 b" ,
531- "if binary-text-conversion is set, we don't care if it outputs zero bytes, let everything pass"
531+ "if binary-text-conversion is set, we don't care if it outputs null- bytes, let everything pass"
532532 ) ;
533533
534534 Ok ( ( ) )
@@ -613,7 +613,12 @@ pub(crate) mod convert_to_diffable {
613613 & mut buf,
614614 ) ?;
615615 assert_eq ! ( out. driver_index, Some ( 0 ) ) ;
616- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
616+ assert_eq ! (
617+ out. data,
618+ Some ( pipeline:: Data :: Buffer {
619+ is_derived: !matches!( mode, pipeline:: Mode :: ToGit )
620+ } )
621+ ) ;
617622 assert_eq ! ( buf. as_bstr( ) , "to-text\n a\n " , "filter was applied" ) ;
618623 }
619624
@@ -630,7 +635,7 @@ pub(crate) mod convert_to_diffable {
630635 & mut buf,
631636 ) ?;
632637 assert_eq ! ( out. driver_index, Some ( 0 ) ) ;
633- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
638+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
634639 assert_eq ! ( buf. as_bstr( ) , "a\n " , "unconditionally use git according to mode" ) ;
635640
636641 let id = db. insert ( "a\n " ) ;
@@ -648,7 +653,7 @@ pub(crate) mod convert_to_diffable {
648653 & mut buf,
649654 ) ?;
650655 assert_eq ! ( out. driver_index, Some ( 0 ) ) ;
651- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
656+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : true } ) ) ;
652657 assert_eq ! ( buf. as_bstr( ) , "to-text\n a\n " , "filter was applied" ) ;
653658 }
654659
@@ -665,7 +670,7 @@ pub(crate) mod convert_to_diffable {
665670 & mut buf,
666671 ) ?;
667672 assert_eq ! ( out. driver_index, Some ( 0 ) ) ;
668- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
673+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
669674 assert_eq ! (
670675 buf. as_bstr( ) ,
671676 "a\n " ,
@@ -723,7 +728,7 @@ pub(crate) mod convert_to_diffable {
723728 & mut buf,
724729 ) ?;
725730 assert_eq ! ( out. driver_index, Some ( 4 ) , "despite missing, we get driver information" ) ;
726- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
731+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
727732 assert_eq ! (
728733 buf. as_bstr( ) ,
729734 "link-target" ,
@@ -796,7 +801,12 @@ pub(crate) mod convert_to_diffable {
796801 & mut buf,
797802 ) ?;
798803 assert_eq ! ( out. driver_index, Some ( 2 ) ) ;
799- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
804+ assert_eq ! (
805+ out. data,
806+ Some ( pipeline:: Data :: Buffer {
807+ is_derived: !matches!( mode, pipeline:: Mode :: ToGit )
808+ } )
809+ ) ;
800810 assert_eq ! (
801811 buf. as_bstr( ) ,
802812 "to-text\n c\n " ,
@@ -819,7 +829,7 @@ pub(crate) mod convert_to_diffable {
819829 & mut buf,
820830 ) ?;
821831 assert_eq ! ( out. driver_index, Some ( 2 ) ) ;
822- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
832+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : true } ) ) ;
823833 assert_eq ! (
824834 buf. as_bstr( ) ,
825835 "to-text\n c\n " ,
@@ -895,7 +905,12 @@ pub(crate) mod convert_to_diffable {
895905 & mut buf,
896906 ) ?;
897907 assert_eq ! ( out. driver_index, Some ( 3 ) ) ;
898- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
908+ assert_eq ! (
909+ out. data,
910+ Some ( pipeline:: Data :: Buffer {
911+ is_derived: !matches!( mode, pipeline:: Mode :: ToGit )
912+ } )
913+ ) ;
899914 assert_eq ! (
900915 buf. as_bstr( ) ,
901916 "to-text\n d\n " ,
@@ -915,7 +930,7 @@ pub(crate) mod convert_to_diffable {
915930 & mut buf,
916931 ) ?;
917932 assert_eq ! ( out. driver_index, Some ( 3 ) ) ;
918- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
933+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : true } ) ) ;
919934 assert_eq ! (
920935 buf. as_bstr( ) ,
921936 "to-text\n d-in-db" ,
@@ -937,7 +952,7 @@ pub(crate) mod convert_to_diffable {
937952 & mut buf,
938953 ) ?;
939954 assert_eq ! ( out. driver_index, None ) ;
940- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
955+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
941956 assert_eq ! (
942957 buf. as_bstr( ) ,
943958 "e\n " ,
@@ -958,7 +973,7 @@ pub(crate) mod convert_to_diffable {
958973 & mut buf,
959974 ) ?;
960975 assert_eq ! ( out. driver_index, None ) ;
961- assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer ) ) ;
976+ assert_eq ! ( out. data, Some ( pipeline:: Data :: Buffer { is_derived : false } ) ) ;
962977 assert_eq ! (
963978 buf. as_bstr( ) ,
964979 "e-in-db" ,
0 commit comments