@@ -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