grit-lib 0.5.26

Core library for the grit Git implementation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
// @generated by scripts/sync_integration_tests.py: run it after adding, renaming
// or removing a file in this directory.

//! Every `grit-lib` integration test in one test executable, so cargo builds and
//! links one binary instead of one per file. Each file in this directory is a
//! module here, except the `[[test]]` targets in Cargo.toml, which run in their
//! own process.
//!
//! Modules marked `full-tests` start the system `git` or build heavy fixtures;
//! they build only with `--features full-tests` (`make test-full`).

// Helpers the test modules share, compiled once.
mod midx_support;
mod pack_delta_scenarios;
mod support;
mod switch_overwrite_git_helpers;

#[cfg(feature = "full-tests")]
#[path = "abbreviate_default_lookup_prefix_issue_1736.rs"]
mod abbreviate_default_lookup_prefix_issue_1736;
#[cfg(feature = "full-tests")]
#[path = "add_50k_perf_git_compat.rs"]
mod add_50k_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_after_clone_parallel_loose.rs"]
mod add_after_clone_parallel_loose;
#[cfg(feature = "full-tests")]
#[path = "add_executable_git_compat.rs"]
mod add_executable_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_ignorecase_clean_tree_perf_git_compat.rs"]
mod add_ignorecase_clean_tree_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_ignorecase_commit_autostage_2247.rs"]
mod add_ignorecase_commit_autostage_2247;
#[cfg(feature = "full-tests")]
#[path = "add_ignorecase_spelling_git_compat.rs"]
mod add_ignorecase_spelling_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_index_write_git_compat.rs"]
mod add_index_write_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_many_literal_pathspec_staging.rs"]
mod add_many_literal_pathspec_staging;
#[cfg(feature = "full-tests")]
#[path = "add_many_pathspec_perf_git_compat.rs"]
mod add_many_pathspec_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_many_untracked_dirs_git_compat.rs"]
mod add_many_untracked_dirs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_packed_blobs_no_loose_issue_2190.rs"]
mod add_packed_blobs_no_loose_issue_2190;
#[cfg(feature = "full-tests")]
#[path = "add_stream_size_git_compat.rs"]
mod add_stream_size_git_compat;
#[cfg(feature = "full-tests")]
#[path = "add_unmerged_partial_issue_1670.rs"]
mod add_unmerged_partial_issue_1670;
#[cfg(feature = "full-tests")]
#[path = "add_untr_80k_campaign.rs"]
mod add_untr_80k_campaign;
#[cfg(feature = "full-tests")]
#[path = "add_untr_bulk_defer_git_compat.rs"]
mod add_untr_bulk_defer_git_compat;
#[cfg(feature = "full-tests")]
#[path = "ahead_behind_paint_git_compat.rs"]
mod ahead_behind_paint_git_compat;
#[cfg(feature = "full-tests")]
#[path = "allowlist_pure_public_fn_coverage.rs"]
mod allowlist_pure_public_fn_coverage;
#[cfg(feature = "full-tests")]
#[path = "allowlist_repo_public_fn_coverage.rs"]
mod allowlist_repo_public_fn_coverage;
#[cfg(feature = "full-tests")]
#[path = "apply_blob_engine.rs"]
mod apply_blob_engine;
#[cfg(feature = "full-tests")]
#[path = "apply_git_compat.rs"]
mod apply_git_compat;
#[cfg(feature = "full-tests")]
#[path = "attributes_rules.rs"]
mod attributes_rules;
#[cfg(feature = "full-tests")]
#[path = "big_file_stream_git_compat.rs"]
mod big_file_stream_git_compat;
#[cfg(feature = "full-tests")]
#[path = "bitmap_walk.rs"]
mod bitmap_walk;
#[cfg(feature = "full-tests")]
#[path = "blame_compute_api.rs"]
mod blame_compute_api;
#[cfg(feature = "full-tests")]
#[path = "blame_copy_git_compat.rs"]
mod blame_copy_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_copy_into_target.rs"]
mod blame_copy_into_target;
#[cfg(feature = "full-tests")]
#[path = "blame_encoding_lossy.rs"]
mod blame_encoding_lossy;
#[cfg(feature = "full-tests")]
#[path = "blame_git_compat.rs"]
mod blame_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_hunks_git_compat.rs"]
mod blame_hunks_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_ignore_revs_git_compat.rs"]
mod blame_ignore_revs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_line_map_regression.rs"]
mod blame_line_map_regression;
#[cfg(feature = "full-tests")]
#[path = "blame_line_range_git_compat.rs"]
mod blame_line_range_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_non_utf8_git_compat.rs"]
mod blame_non_utf8_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_textconv_pair_cache.rs"]
mod blame_textconv_pair_cache;
#[cfg(feature = "full-tests")]
#[path = "blame_whitespace_git_compat.rs"]
mod blame_whitespace_git_compat;
#[cfg(feature = "full-tests")]
#[path = "blame_worktree_git_compat.rs"]
mod blame_worktree_git_compat;
#[cfg(feature = "full-tests")]
#[path = "bounded_limit_list.rs"]
mod bounded_limit_list;
#[cfg(feature = "full-tests")]
#[path = "branch_comparison_git_compat.rs"]
mod branch_comparison_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_create_many_refs_git_compat.rs"]
mod branch_create_many_refs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_inventory_git_compat.rs"]
mod branch_inventory_git_compat;
#[path = "branch_inventory_public_coverage.rs"]
mod branch_inventory_public_coverage;
#[cfg(feature = "full-tests")]
#[path = "branch_inventory_regressions.rs"]
mod branch_inventory_regressions;
#[cfg(feature = "full-tests")]
#[path = "branch_list_packed_refs_git_compat.rs"]
mod branch_list_packed_refs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_mutation_git_compat.rs"]
mod branch_mutation_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_rename_git_compat.rs"]
mod branch_rename_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_rename_many_refs_git_compat.rs"]
mod branch_rename_many_refs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_tag_list_delete_git_compat.rs"]
mod branch_tag_list_delete_git_compat;
#[cfg(feature = "full-tests")]
#[path = "branch_tracking_git_compat.rs"]
mod branch_tracking_git_compat;
#[path = "build_file_diffs_streaming.rs"]
mod build_file_diffs_streaming;
#[cfg(feature = "full-tests")]
#[path = "bundle_fetch_cancel.rs"]
mod bundle_fetch_cancel;
#[cfg(feature = "full-tests")]
#[path = "bundle_git_compat.rs"]
mod bundle_git_compat;
#[cfg(feature = "full-tests")]
#[path = "bundle_index_cancel.rs"]
mod bundle_index_cancel;
#[cfg(feature = "full-tests")]
#[path = "bundle_plan.rs"]
mod bundle_plan;
#[cfg(feature = "full-tests")]
#[path = "bundle_remote.rs"]
mod bundle_remote;
#[cfg(feature = "full-tests")]
#[path = "cache_tree_extension_hot_path.rs"]
mod cache_tree_extension_hot_path;
#[cfg(feature = "full-tests")]
#[path = "cache_tree_git_compat.rs"]
mod cache_tree_git_compat;
#[path = "canonical_paths.rs"]
mod canonical_paths;
#[cfg(feature = "full-tests")]
#[path = "change_id_git_compat.rs"]
mod change_id_git_compat;
#[cfg(feature = "full-tests")]
#[path = "change_id_rev_parse.rs"]
mod change_id_rev_parse;
#[cfg(feature = "full-tests")]
#[path = "checkout_autocrlf_git_compat.rs"]
mod checkout_autocrlf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_between_trees_git_clean_after.rs"]
mod checkout_between_trees_git_clean_after;
#[cfg(feature = "full-tests")]
#[path = "checkout_bulk_crlf_git_compat.rs"]
mod checkout_bulk_crlf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_cancel_rollback.rs"]
mod checkout_cancel_rollback;
#[cfg(feature = "full-tests")]
#[path = "checkout_cancel_rollback_delay_filter.rs"]
mod checkout_cancel_rollback_delay_filter;
#[cfg(feature = "full-tests")]
#[path = "checkout_cancel_rollback_wide_perf.rs"]
mod checkout_cancel_rollback_wide_perf;
#[cfg(feature = "full-tests")]
#[path = "checkout_chunk_memory_git_compat.rs"]
mod checkout_chunk_memory_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_destination_gitattributes_git_compat.rs"]
mod checkout_destination_gitattributes_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_gitlink_uninitialized_git_compat.rs"]
mod checkout_gitlink_uninitialized_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_hostile_paths_git_compat.rs"]
mod checkout_hostile_paths_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_ignorecase_collision_commit.rs"]
mod checkout_ignorecase_collision_commit;
#[cfg(feature = "full-tests")]
#[path = "checkout_in_place_umask_git_compat.rs"]
mod checkout_in_place_umask_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_large_blob_rss.rs"]
mod checkout_large_blob_rss;
#[cfg(feature = "full-tests")]
#[path = "checkout_large_blob_streaming.rs"]
mod checkout_large_blob_streaming;
#[cfg(feature = "full-tests")]
#[path = "checkout_long_path_delete_2173.rs"]
mod checkout_long_path_delete_2173;
#[cfg(feature = "full-tests")]
#[path = "checkout_nested_gitattributes_autocrlf_git_compat.rs"]
mod checkout_nested_gitattributes_autocrlf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_parallel.rs"]
mod checkout_parallel;
#[cfg(feature = "full-tests")]
#[path = "checkout_populated_executable_git_compat.rs"]
mod checkout_populated_executable_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_populated_index_stat_git_compat.rs"]
mod checkout_populated_index_stat_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_populated_tree_large.rs"]
mod checkout_populated_tree_large;
#[cfg(feature = "full-tests")]
#[path = "checkout_replaced_top_level_dir_git_compat.rs"]
mod checkout_replaced_top_level_dir_git_compat;
#[cfg(feature = "full-tests")]
#[path = "checkout_switch_away_invalid_index.rs"]
mod checkout_switch_away_invalid_index;
#[cfg(feature = "full-tests")]
#[path = "clean_untracked.rs"]
mod clean_untracked;
#[cfg(feature = "full-tests")]
#[path = "clone_all_remote_tags.rs"]
mod clone_all_remote_tags;
#[cfg(feature = "full-tests")]
#[path = "clone_bare_no_checkout_git_compat.rs"]
mod clone_bare_no_checkout_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_checkout_cancel.rs"]
mod clone_checkout_cancel;
#[cfg(feature = "full-tests")]
#[path = "clone_empty_remote_git_compat.rs"]
mod clone_empty_remote_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_empty_remote_git_daemon_v2.rs"]
mod clone_empty_remote_git_daemon_v2;
#[cfg(feature = "full-tests")]
#[path = "clone_eol_crlf_git_compat.rs"]
mod clone_eol_crlf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_index_cache_tree_git_compat.rs"]
mod clone_index_cache_tree_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_into_custom_primary.rs"]
mod clone_into_custom_primary;
#[cfg(feature = "full-tests")]
#[path = "clone_large_blob_rss.rs"]
mod clone_large_blob_rss;
#[cfg(feature = "full-tests")]
#[path = "clone_layout.rs"]
mod clone_layout;
#[cfg(feature = "full-tests")]
#[path = "clone_lfs_git_compat.rs"]
mod clone_lfs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_local_loose_tip_fast.rs"]
mod clone_local_loose_tip_fast;
#[cfg(feature = "full-tests")]
#[path = "clone_local_mixed_transfer_stats.rs"]
mod clone_local_mixed_transfer_stats;
#[cfg(feature = "full-tests")]
#[path = "clone_local_pack_link.rs"]
mod clone_local_pack_link;
#[cfg(feature = "full-tests")]
#[path = "clone_mixed_pack_loose_git_compat.rs"]
mod clone_mixed_pack_loose_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_parallel_destination.rs"]
mod clone_parallel_destination;
#[cfg(feature = "full-tests")]
#[path = "clone_shallow_git_compat.rs"]
mod clone_shallow_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_single_branch_tags_git_compat.rs"]
mod clone_single_branch_tags_git_compat;
#[cfg(feature = "full-tests")]
#[path = "clone_thread_policy.rs"]
mod clone_thread_policy;
#[cfg(feature = "full-tests")]
#[path = "combined_structured_git.rs"]
mod combined_structured_git;
#[cfg(feature = "full-tests")]
#[path = "command_runner_e2e.rs"]
mod command_runner_e2e;
#[cfg(feature = "full-tests")]
#[path = "commit_50k_perf_git_compat.rs"]
mod commit_50k_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_autostage_nothing_to_commit.rs"]
mod commit_autostage_nothing_to_commit;
#[cfg(feature = "full-tests")]
#[path = "commit_branch_moved.rs"]
mod commit_branch_moved;
#[cfg(feature = "full-tests")]
#[path = "commit_cache_tree_warm_path.rs"]
mod commit_cache_tree_warm_path;
#[cfg(feature = "full-tests")]
#[path = "commit_change_id.rs"]
mod commit_change_id;
#[cfg(feature = "full-tests")]
#[path = "commit_custom_store_round_trips.rs"]
mod commit_custom_store_round_trips;
#[cfg(feature = "full-tests")]
#[path = "commit_deep_tree_stage_git_compat.rs"]
mod commit_deep_tree_stage_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_detached_head_git_compat.rs"]
mod commit_detached_head_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_detached_head_reftable.rs"]
mod commit_detached_head_reftable;
#[cfg(feature = "full-tests")]
#[path = "commit_display_json.rs"]
mod commit_display_json;
#[cfg(feature = "full-tests")]
#[path = "commit_empty_tree_git_compat.rs"]
mod commit_empty_tree_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_encoding_git_compat.rs"]
mod commit_encoding_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_files_many_git_compat.rs"]
mod commit_files_many_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_bloom_revwalk.rs"]
mod commit_graph_bloom_revwalk;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_chain_exercise.rs"]
mod commit_graph_chain_exercise;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_corruption.rs"]
mod commit_graph_corruption;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_custom_store.rs"]
mod commit_graph_custom_store;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_file_api.rs"]
mod commit_graph_file_api;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_file_lib_coverage.rs"]
mod commit_graph_file_lib_coverage;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_roundtrip.rs"]
mod commit_graph_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_shallow_git_compat.rs"]
mod commit_graph_shallow_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_graph_write_coverage.rs"]
mod commit_graph_write_coverage;
#[cfg(feature = "full-tests")]
#[path = "commit_identity_create_git_compat.rs"]
mod commit_identity_create_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_merge_state_git_compat.rs"]
mod commit_merge_state_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_message_hooks.rs"]
mod commit_message_hooks;
#[cfg(feature = "full-tests")]
#[path = "commit_message_source.rs"]
mod commit_message_source;
#[cfg(feature = "full-tests")]
#[path = "commit_nothing_staged_1969.rs"]
mod commit_nothing_staged_1969;
#[cfg(feature = "full-tests")]
#[path = "commit_outcome_regressions.rs"]
mod commit_outcome_regressions;
#[cfg(feature = "full-tests")]
#[path = "commit_p1_git_compat.rs"]
mod commit_p1_git_compat;
#[path = "commit_range_diff_smoke.rs"]
mod commit_range_diff_smoke;
#[cfg(feature = "full-tests")]
#[path = "commit_ref_roundtrip.rs"]
mod commit_ref_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "commit_scope_git_compat.rs"]
mod commit_scope_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_scope_hook_index.rs"]
mod commit_scope_hook_index;
#[cfg(feature = "full-tests")]
#[path = "commit_tag_no_blank_line_git_compat.rs"]
mod commit_tag_no_blank_line_git_compat;
#[cfg(feature = "full-tests")]
#[path = "commit_trailers_git_compat.rs"]
mod commit_trailers_git_compat;
#[cfg(feature = "full-tests")]
#[path = "compare_with_target_git_compat.rs"]
mod compare_with_target_git_compat;
#[path = "concurrent_commit_in_process.rs"]
mod concurrent_commit_in_process;
#[cfg(feature = "full-tests")]
#[path = "concurrent_repos.rs"]
mod concurrent_repos;
#[cfg(feature = "full-tests")]
#[path = "config_advanced_git_compat.rs"]
mod config_advanced_git_compat;
#[path = "config_dense_parse_coverage.rs"]
mod config_dense_parse_coverage;
#[path = "config_file_api_coverage.rs"]
mod config_file_api_coverage;
#[path = "config_file_roundtrip.rs"]
mod config_file_roundtrip;
#[path = "config_include_gitdir_coverage.rs"]
mod config_include_gitdir_coverage;
#[cfg(feature = "full-tests")]
#[path = "config_include_if_coverage.rs"]
mod config_include_if_coverage;
#[cfg(feature = "full-tests")]
#[path = "config_includes.rs"]
mod config_includes;
#[path = "config_line_coverage.rs"]
mod config_line_coverage;
#[path = "config_load_coverage.rs"]
mod config_load_coverage;
#[cfg(feature = "full-tests")]
#[path = "config_location_git_compat.rs"]
mod config_location_git_compat;
#[path = "config_merge_deep_coverage.rs"]
mod config_merge_deep_coverage;
#[cfg(feature = "full-tests")]
#[path = "config_override_git_compat.rs"]
mod config_override_git_compat;
#[path = "config_parameters_coverage.rs"]
mod config_parameters_coverage;
#[cfg(feature = "full-tests")]
#[path = "config_parse.rs"]
mod config_parse;
#[path = "config_repo_load_coverage.rs"]
mod config_repo_load_coverage;
#[path = "config_set_getters_coverage.rs"]
mod config_set_getters_coverage;
#[cfg(feature = "full-tests")]
#[path = "config_write.rs"]
mod config_write;
#[cfg(feature = "full-tests")]
#[path = "conflict_model_issue_2145.rs"]
mod conflict_model_issue_2145;
#[cfg(feature = "full-tests")]
#[path = "coverage_floor_nudge_git_compat.rs"]
mod coverage_floor_nudge_git_compat;
#[cfg(feature = "full-tests")]
#[path = "coverage_gate_1540_sweep.rs"]
mod coverage_gate_1540_sweep;
#[cfg(feature = "full-tests")]
#[path = "coverage_gate_bulk_sweep.rs"]
mod coverage_gate_bulk_sweep;
#[path = "coverage_max_sweep.rs"]
mod coverage_max_sweep;
#[path = "coverage_total_blame_crlf_sweep.rs"]
mod coverage_total_blame_crlf_sweep;
#[cfg(feature = "full-tests")]
#[path = "create_commit_git_compat.rs"]
mod create_commit_git_compat;
#[cfg(feature = "full-tests")]
#[path = "crlf_utf_worktree_git_compat.rs"]
mod crlf_utf_worktree_git_compat;
#[path = "cross_pack_ref_delta_odb.rs"]
mod cross_pack_ref_delta_odb;
#[cfg(feature = "full-tests")]
#[path = "custom_odb_porcelain.rs"]
mod custom_odb_porcelain;
#[cfg(feature = "full-tests")]
#[path = "deep_tree_untracked_autocrlf_git_compat.rs"]
mod deep_tree_untracked_autocrlf_git_compat;
#[path = "detect_copies_hash_collision.rs"]
mod detect_copies_hash_collision;
#[cfg(feature = "full-tests")]
#[path = "diagnostics_sink.rs"]
mod diagnostics_sink;
#[cfg(feature = "full-tests")]
#[path = "diff_50k_perf_git_compat.rs"]
mod diff_50k_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_blob_algorithms.rs"]
mod diff_blob_algorithms;
#[cfg(feature = "full-tests")]
#[path = "diff_clean_tree_trusted_stat.rs"]
mod diff_clean_tree_trusted_stat;
#[cfg(feature = "full-tests")]
#[path = "diff_combined.rs"]
mod diff_combined;
#[cfg(feature = "full-tests")]
#[path = "diff_commits_git_compat.rs"]
mod diff_commits_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_commits_renames.rs"]
mod diff_commits_renames;
#[cfg(feature = "full-tests")]
#[path = "diff_core_coverage_floor.rs"]
mod diff_core_coverage_floor;
#[cfg(feature = "full-tests")]
#[path = "diff_detail_git_compat.rs"]
mod diff_detail_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_git_mv_cache_tree.rs"]
mod diff_git_mv_cache_tree;
#[path = "diff_gitlink_typechange_coverage.rs"]
mod diff_gitlink_typechange_coverage;
#[path = "diff_harness_blob_sweep.rs"]
mod diff_harness_blob_sweep;
#[cfg(feature = "full-tests")]
#[path = "diff_has_changes_git_compat.rs"]
mod diff_has_changes_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_index_to_tree_wide_cache_tree_git_compat.rs"]
mod diff_index_to_tree_wide_cache_tree_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_no_index.rs"]
mod diff_no_index;
#[cfg(feature = "full-tests")]
#[path = "diff_options_line_engine.rs"]
mod diff_options_line_engine;
#[cfg(feature = "full-tests")]
#[path = "diff_parallel_symlinks_git_compat.rs"]
mod diff_parallel_symlinks_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_rename_filter_git_compat.rs"]
mod diff_rename_filter_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_rename_parallel.rs"]
mod diff_rename_parallel;
#[cfg(feature = "full-tests")]
#[path = "diff_request.rs"]
mod diff_request;
#[cfg(feature = "full-tests")]
#[path = "diff_staged_renames.rs"]
mod diff_staged_renames;
#[path = "diff_stat.rs"]
mod diff_stat;
#[cfg(feature = "full-tests")]
#[path = "diff_stat_git_compat.rs"]
mod diff_stat_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_stream_memory.rs"]
mod diff_stream_memory;
#[cfg(feature = "full-tests")]
#[path = "diff_targets.rs"]
mod diff_targets;
#[path = "diff_tree_autocrlf_filemode.rs"]
mod diff_tree_autocrlf_filemode;
#[cfg(feature = "full-tests")]
#[path = "diff_tree_renames.rs"]
mod diff_tree_renames;
#[cfg(feature = "full-tests")]
#[path = "diff_trees_renames.rs"]
mod diff_trees_renames;
#[cfg(feature = "full-tests")]
#[path = "diff_typechange_status_git_compat.rs"]
mod diff_typechange_status_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_whitespace_git_compat.rs"]
mod diff_whitespace_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_worktree_eol_git_compat.rs"]
mod diff_worktree_eol_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_worktree_stat_git_compat.rs"]
mod diff_worktree_stat_git_compat;
#[cfg(feature = "full-tests")]
#[path = "diff_ws_filter_integration.rs"]
mod diff_ws_filter_integration;
#[path = "drop_promised_blobs.rs"]
mod drop_promised_blobs;
#[cfg(feature = "full-tests")]
#[path = "drop_promised_blobs_git_compat.rs"]
mod drop_promised_blobs_git_compat;
#[cfg(feature = "full-tests")]
#[path = "embedded_repo_gitlink_git_compat.rs"]
mod embedded_repo_gitlink_git_compat;
#[path = "embedder_errors_1685.rs"]
mod embedder_errors_1685;
#[cfg(feature = "full-tests")]
#[path = "environment_discover.rs"]
mod environment_discover;
#[cfg(feature = "full-tests")]
#[path = "error_cancelled.rs"]
mod error_cancelled;
#[cfg(feature = "full-tests")]
#[path = "fetch_all_cancel.rs"]
mod fetch_all_cancel;
#[cfg(feature = "full-tests")]
#[path = "fetch_all_git_compat.rs"]
mod fetch_all_git_compat;
#[cfg(feature = "full-tests")]
#[path = "fetch_cancel.rs"]
mod fetch_cancel;
#[cfg(feature = "full-tests")]
#[path = "fetch_deepen_git_compat.rs"]
mod fetch_deepen_git_compat;
#[cfg(feature = "full-tests")]
#[path = "fetch_literal_url_git_compat.rs"]
mod fetch_literal_url_git_compat;
#[cfg(feature = "full-tests")]
#[path = "fetch_local_bare_git_compat.rs"]
mod fetch_local_bare_git_compat;
#[cfg(feature = "full-tests")]
#[path = "fetch_local_bare_smoke.rs"]
mod fetch_local_bare_smoke;
#[cfg(feature = "full-tests")]
#[path = "fetch_local_empty_commit.rs"]
mod fetch_local_empty_commit;
#[cfg(feature = "full-tests")]
#[path = "fetch_local_many_refs.rs"]
mod fetch_local_many_refs;
#[cfg(feature = "full-tests")]
#[path = "fetch_malicious_advertisement.rs"]
mod fetch_malicious_advertisement;
#[cfg(feature = "full-tests")]
#[path = "fetch_partial_clone_filter.rs"]
mod fetch_partial_clone_filter;
#[cfg(feature = "full-tests")]
#[path = "fetch_prune_empty_parent_1317.rs"]
mod fetch_prune_empty_parent_1317;
#[path = "fetch_prune_resolve.rs"]
mod fetch_prune_resolve;
#[cfg(feature = "full-tests")]
#[path = "fetch_prune_symref_967.rs"]
mod fetch_prune_symref_967;
#[cfg(feature = "full-tests")]
#[path = "fetch_pull_branch_remote_git_compat.rs"]
mod fetch_pull_branch_remote_git_compat;
#[cfg(feature = "full-tests")]
#[path = "fetch_ref_namespace_partial_1654.rs"]
mod fetch_ref_namespace_partial_1654;
#[cfg(feature = "full-tests")]
#[path = "fetch_refspec_git_compat.rs"]
mod fetch_refspec_git_compat;
#[cfg(feature = "full-tests")]
#[path = "fetch_remote_progress.rs"]
mod fetch_remote_progress;
#[cfg(feature = "full-tests")]
#[path = "fetch_tag_refspec_git_compat.rs"]
mod fetch_tag_refspec_git_compat;
#[path = "fetch_tags_resolve.rs"]
mod fetch_tags_resolve;
#[cfg(feature = "full-tests")]
#[path = "fetch_v2_negotiation_rounds.rs"]
mod fetch_v2_negotiation_rounds;
#[cfg(feature = "full-tests")]
#[path = "files_store_git_roundtrip.rs"]
mod files_store_git_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "files_store_review_fixes.rs"]
mod files_store_review_fixes;
#[cfg(feature = "full-tests")]
#[path = "files_store_win32_reserved_refs.rs"]
mod files_store_win32_reserved_refs;
#[cfg(feature = "full-tests")]
#[path = "filter_required_git_compat.rs"]
mod filter_required_git_compat;
#[path = "fsck_api_coverage.rs"]
mod fsck_api_coverage;
#[cfg(feature = "full-tests")]
#[path = "fsck_memory.rs"]
mod fsck_memory;
#[cfg(feature = "full-tests")]
#[path = "fsck_objects.rs"]
mod fsck_objects;
#[cfg(feature = "full-tests")]
#[path = "fsck_repository.rs"]
mod fsck_repository;
#[cfg(feature = "full-tests")]
#[path = "fsmonitor_git_compat.rs"]
mod fsmonitor_git_compat;
#[path = "fuzz_corpus_replay.rs"]
mod fuzz_corpus_replay;
#[cfg(feature = "full-tests")]
#[path = "git_clone_index_stat_git_compat.rs"]
mod git_clone_index_stat_git_compat;
#[cfg(feature = "full-tests")]
#[path = "git_date_git_compat.rs"]
mod git_date_git_compat;
#[path = "git_dir_path_io_1970.rs"]
mod git_dir_path_io_1970;
#[cfg(feature = "full-tests")]
#[path = "gitattributes_crlf_patterns_git_compat.rs"]
mod gitattributes_crlf_patterns_git_compat;
#[cfg(feature = "full-tests")]
#[path = "gitbutler_workspace.rs"]
mod gitbutler_workspace;
#[cfg(feature = "full-tests")]
#[path = "graph_layout_git_compat.rs"]
mod graph_layout_git_compat;
#[cfg(feature = "full-tests")]
#[path = "graph_layout_hidden_merge_parents.rs"]
mod graph_layout_hidden_merge_parents;
#[cfg(feature = "full-tests")]
#[path = "graph_layout_topology.rs"]
mod graph_layout_topology;
#[cfg(feature = "full-tests")]
#[path = "group_by_author_git_compat.rs"]
mod group_by_author_git_compat;
#[path = "hash_abstraction_guard.rs"]
mod hash_abstraction_guard;
#[cfg(feature = "full-tests")]
#[path = "hash_git_compat.rs"]
mod hash_git_compat;
#[path = "hash_parallel_api.rs"]
mod hash_parallel_api;
#[cfg(feature = "full-tests")]
#[path = "head_commit.rs"]
mod head_commit;
#[cfg(feature = "full-tests")]
#[path = "history_absorb.rs"]
mod history_absorb;
#[cfg(feature = "full-tests")]
#[path = "history_apply.rs"]
mod history_apply;
#[cfg(feature = "full-tests")]
#[path = "history_change_ids.rs"]
mod history_change_ids;
#[path = "history_coverage_gate_sweep.rs"]
mod history_coverage_gate_sweep;
#[cfg(feature = "full-tests")]
#[path = "history_drop.rs"]
mod history_drop;
#[cfg(feature = "full-tests")]
#[path = "history_engine.rs"]
mod history_engine;
#[cfg(feature = "full-tests")]
#[path = "history_fixup.rs"]
mod history_fixup;
#[cfg(feature = "full-tests")]
#[path = "history_harness_smoke.rs"]
mod history_harness_smoke;
#[cfg(feature = "full-tests")]
#[path = "history_injected_ref_store.rs"]
mod history_injected_ref_store;
#[cfg(feature = "full-tests")]
#[path = "history_move.rs"]
mod history_move;
#[cfg(feature = "full-tests")]
#[path = "history_options.rs"]
mod history_options;
#[cfg(feature = "full-tests")]
#[path = "history_rebase.rs"]
mod history_rebase;
#[cfg(feature = "full-tests")]
#[path = "history_rebase_session.rs"]
mod history_rebase_session;
#[cfg(feature = "full-tests")]
#[path = "history_reword.rs"]
mod history_reword;
#[cfg(feature = "full-tests")]
#[path = "history_rewrite_signing.rs"]
mod history_rewrite_signing;
#[cfg(feature = "full-tests")]
#[path = "history_split.rs"]
mod history_split;
#[cfg(feature = "full-tests")]
#[path = "history_squash.rs"]
mod history_squash;
#[cfg(feature = "full-tests")]
#[path = "history_undo.rs"]
mod history_undo;
#[cfg(feature = "full-tests")]
#[path = "hooks_path_relative.rs"]
mod hooks_path_relative;
#[cfg(feature = "full-tests")]
#[path = "hooks_spawn.rs"]
mod hooks_spawn;
#[cfg(feature = "full-tests")]
#[path = "ident_attribute_git_compat.rs"]
mod ident_attribute_git_compat;
#[cfg(feature = "full-tests")]
#[path = "ignore_check.rs"]
mod ignore_check;
#[cfg(feature = "full-tests")]
#[path = "ignore_fastpath_git_compat.rs"]
mod ignore_fastpath_git_compat;
#[cfg(feature = "full-tests")]
#[path = "ignore_rules.rs"]
mod ignore_rules;
#[cfg(feature = "full-tests")]
#[path = "index_apply_git_compat.rs"]
mod index_apply_git_compat;
#[path = "index_bulk_roundtrip.rs"]
mod index_bulk_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "index_coverage_git_matrix.rs"]
mod index_coverage_git_matrix;
#[cfg(feature = "full-tests")]
#[path = "index_eoie_ieot_git_compat.rs"]
mod index_eoie_ieot_git_compat;
#[cfg(feature = "full-tests")]
#[path = "index_ext_line_coverage.rs"]
mod index_ext_line_coverage;
#[cfg(feature = "full-tests")]
#[path = "index_git_load_sweep.rs"]
mod index_git_load_sweep;
#[cfg(feature = "full-tests")]
#[path = "index_large_load_git_compat.rs"]
mod index_large_load_git_compat;
#[cfg(feature = "full-tests")]
#[path = "index_lock_before_mutate_git_compat.rs"]
mod index_lock_before_mutate_git_compat;
#[cfg(feature = "full-tests")]
#[path = "index_lock_pid_liveness.rs"]
mod index_lock_pid_liveness;
#[cfg(feature = "full-tests")]
#[path = "index_pack_parallel.rs"]
mod index_pack_parallel;
#[cfg(feature = "full-tests")]
#[path = "index_refresh_only_bench.rs"]
mod index_refresh_only_bench;
#[cfg(feature = "full-tests")]
#[path = "index_remove_batch_git_compat.rs"]
mod index_remove_batch_git_compat;
#[cfg(feature = "full-tests")]
#[path = "index_skip_worktree.rs"]
mod index_skip_worktree;
#[cfg(feature = "full-tests")]
#[path = "index_sparse_api_coverage.rs"]
mod index_sparse_api_coverage;
#[cfg(feature = "full-tests")]
#[path = "index_update_concurrency.rs"]
mod index_update_concurrency;
#[cfg(feature = "full-tests")]
#[path = "index_versions_git_compat.rs"]
mod index_versions_git_compat;
#[cfg(feature = "full-tests")]
#[path = "ingest_pack_into_store.rs"]
mod ingest_pack_into_store;
#[cfg(feature = "full-tests")]
#[path = "init_branch_format_git_compat.rs"]
mod init_branch_format_git_compat;
#[cfg(feature = "full-tests")]
#[path = "init_environment_identity.rs"]
mod init_environment_identity;
#[path = "init_filesystem_config.rs"]
mod init_filesystem_config;
#[path = "init_template_precompose_probe.rs"]
mod init_template_precompose_probe;
#[cfg(feature = "full-tests")]
#[path = "interpret_trailers_git_compat.rs"]
mod interpret_trailers_git_compat;
#[cfg(feature = "full-tests")]
#[path = "issue_1413_empty_subtree.rs"]
mod issue_1413_empty_subtree;
#[cfg(feature = "full-tests")]
#[path = "issue_1614_merge_no_dangling_empty_tree.rs"]
mod issue_1614_merge_no_dangling_empty_tree;
#[cfg(feature = "full-tests")]
#[path = "large_blob_memory.rs"]
mod large_blob_memory;
#[cfg(feature = "full-tests")]
#[path = "legacy_tree_mode_2322.rs"]
mod legacy_tree_mode_2322;
#[path = "library_subprocess_hygiene.rs"]
mod library_subprocess_hygiene;
#[path = "linked_worktree_injected_ref_store.rs"]
mod linked_worktree_injected_ref_store;
#[cfg(feature = "full-tests")]
#[path = "list_limit_handles.rs"]
mod list_limit_handles;
#[cfg(feature = "full-tests")]
#[path = "local_transport_reachable.rs"]
mod local_transport_reachable;
#[cfg(feature = "full-tests")]
#[path = "lockfile_contention_git_compat.rs"]
mod lockfile_contention_git_compat;
#[cfg(feature = "full-tests")]
#[path = "log_oneline_abbrev_packed.rs"]
mod log_oneline_abbrev_packed;
#[cfg(feature = "full-tests")]
#[path = "log_patch_git_compat.rs"]
mod log_patch_git_compat;
#[cfg(feature = "full-tests")]
#[path = "log_patch_index_abbrev_git.rs"]
mod log_patch_index_abbrev_git;
#[cfg(feature = "full-tests")]
#[path = "log_patch_one_commit.rs"]
mod log_patch_one_commit;
#[cfg(feature = "full-tests")]
#[path = "loose_write_concurrent_issue_1875.rs"]
mod loose_write_concurrent_issue_1875;
#[cfg(feature = "full-tests")]
#[path = "maintenance_git_compat.rs"]
mod maintenance_git_compat;
#[cfg(feature = "full-tests")]
#[path = "maintenance_roundtrip.rs"]
mod maintenance_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "mapped_cg_midx_git.rs"]
mod mapped_cg_midx_git;
#[cfg(feature = "full-tests")]
#[path = "matrix_completeness.rs"]
mod matrix_completeness;
#[cfg(feature = "full-tests")]
#[path = "matrix_fetch.rs"]
mod matrix_fetch;
#[cfg(feature = "full-tests")]
#[path = "matrix_packs.rs"]
mod matrix_packs;
#[cfg(feature = "full-tests")]
#[path = "matrix_push.rs"]
mod matrix_push;
#[cfg(feature = "full-tests")]
#[path = "matrix_sha256.rs"]
mod matrix_sha256;
#[cfg(feature = "full-tests")]
#[path = "merge_abort_wide_perf_git_compat.rs"]
mod merge_abort_wide_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_base_git_compat.rs"]
mod merge_base_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_base_line_coverage.rs"]
mod merge_base_line_coverage;
#[cfg(feature = "full-tests")]
#[path = "merge_check_git_compat.rs"]
mod merge_check_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_conflicts_git_compat.rs"]
mod merge_conflicts_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_continue_git_compat.rs"]
mod merge_continue_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_detached_head_git_compat.rs"]
mod merge_detached_head_git_compat;
#[path = "merge_diff_line_coverage.rs"]
mod merge_diff_line_coverage;
#[cfg(feature = "full-tests")]
#[path = "merge_directory_renames_git_compat.rs"]
mod merge_directory_renames_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_dirty_unrelated_git_compat.rs"]
mod merge_dirty_unrelated_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_driver_git_compat.rs"]
mod merge_driver_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_dry_run.rs"]
mod merge_dry_run;
#[cfg(feature = "full-tests")]
#[path = "merge_eol_crlf_conflict_git_compat.rs"]
mod merge_eol_crlf_conflict_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_file_git_compat.rs"]
mod merge_file_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_identity_git_compat.rs"]
mod merge_identity_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_modify_delete_issue_1005.rs"]
mod merge_modify_delete_issue_1005;
#[cfg(feature = "full-tests")]
#[path = "merge_options_git_compat.rs"]
mod merge_options_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_ort_git_compat.rs"]
mod merge_ort_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_rename_edit_issue_1093.rs"]
mod merge_rename_edit_issue_1093;
#[cfg(feature = "full-tests")]
#[path = "merge_rename_index_issue_1091.rs"]
mod merge_rename_index_issue_1091;
#[cfg(feature = "full-tests")]
#[path = "merge_rename_rename_2to1_issue_2112.rs"]
mod merge_rename_rename_2to1_issue_2112;
#[cfg(feature = "full-tests")]
#[path = "merge_rename_rename_issue_1878.rs"]
mod merge_rename_rename_issue_1878;
#[cfg(feature = "full-tests")]
#[path = "merge_show_added.rs"]
mod merge_show_added;
#[cfg(feature = "full-tests")]
#[path = "merge_source_resolve.rs"]
mod merge_source_resolve;
#[cfg(feature = "full-tests")]
#[path = "merge_strategy_options_git_compat.rs"]
mod merge_strategy_options_git_compat;
#[cfg(feature = "full-tests")]
#[path = "merge_trees_walk_git_compat.rs"]
mod merge_trees_walk_git_compat;
#[cfg(feature = "full-tests")]
#[path = "midx_bitmap_write_git_compat.rs"]
mod midx_bitmap_write_git_compat;
#[cfg(feature = "full-tests")]
#[path = "midx_corruption.rs"]
mod midx_corruption;
#[cfg(feature = "full-tests")]
#[path = "midx_fast_lookup_git_compat.rs"]
mod midx_fast_lookup_git_compat;
#[cfg(feature = "full-tests")]
#[path = "midx_rev_ridx_trailer.rs"]
mod midx_rev_ridx_trailer;
#[cfg(feature = "full-tests")]
#[path = "midx_roundtrip.rs"]
mod midx_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "midx_write_coverage.rs"]
mod midx_write_coverage;
#[path = "mv_force_multi_source_rollback.rs"]
mod mv_force_multi_source_rollback;
#[path = "negotiator_tag_tip.rs"]
mod negotiator_tag_tip;
#[path = "nfd_pathspec_argv.rs"]
mod nfd_pathspec_argv;
#[path = "non_exhaustive_options_api.rs"]
mod non_exhaustive_options_api;
#[cfg(feature = "full-tests")]
#[path = "non_utf8_path_git_compat.rs"]
mod non_utf8_path_git_compat;
#[path = "not_a_repository_reason.rs"]
mod not_a_repository_reason;
#[cfg(feature = "full-tests")]
#[path = "not_a_repository_reason_git_compat.rs"]
mod not_a_repository_reason_git_compat;
#[cfg(feature = "full-tests")]
#[path = "notes_concurrent_update.rs"]
mod notes_concurrent_update;
#[cfg(feature = "full-tests")]
#[path = "notes_git_compat.rs"]
mod notes_git_compat;
#[cfg(feature = "full-tests")]
#[path = "notes_plan_dry_run.rs"]
mod notes_plan_dry_run;
#[cfg(feature = "full-tests")]
#[path = "notes_roundtrip.rs"]
mod notes_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "objects_parse_roundtrip.rs"]
mod objects_parse_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "objects_typed_write.rs"]
mod objects_typed_write;
#[path = "odb_abstraction_guard.rs"]
mod odb_abstraction_guard;
#[cfg(feature = "full-tests")]
#[path = "odb_alternate_corrupt_first.rs"]
mod odb_alternate_corrupt_first;
#[cfg(feature = "full-tests")]
#[path = "odb_alternates.rs"]
mod odb_alternates;
#[path = "odb_compose_alternates.rs"]
mod odb_compose_alternates;
#[cfg(feature = "full-tests")]
#[path = "odb_concurrent_reads.rs"]
mod odb_concurrent_reads;
#[path = "odb_conformance_composite.rs"]
mod odb_conformance_composite;
#[cfg(feature = "full-tests")]
#[path = "odb_conformance_files.rs"]
mod odb_conformance_files;
#[cfg(feature = "full-tests")]
#[path = "odb_conformance_loose.rs"]
mod odb_conformance_loose;
#[cfg(feature = "full-tests")]
#[path = "odb_conformance_memory.rs"]
mod odb_conformance_memory;
#[cfg(feature = "full-tests")]
#[path = "odb_conformance_midx.rs"]
mod odb_conformance_midx;
#[cfg(feature = "full-tests")]
#[path = "odb_conformance_packs.rs"]
mod odb_conformance_packs;
#[path = "odb_contains_backend_errors.rs"]
mod odb_contains_backend_errors;
#[cfg(feature = "full-tests")]
#[path = "odb_custom_backend.rs"]
mod odb_custom_backend;
#[cfg(feature = "full-tests")]
#[path = "odb_custom_primary_transport.rs"]
mod odb_custom_primary_transport;
#[cfg(feature = "full-tests")]
#[path = "odb_env_object_directory.rs"]
mod odb_env_object_directory;
#[cfg(feature = "full-tests")]
#[path = "odb_lookup_prefix_git_compat.rs"]
mod odb_lookup_prefix_git_compat;
#[cfg(feature = "full-tests")]
#[path = "odb_lookup_prefix_pack_loose_overlap.rs"]
mod odb_lookup_prefix_pack_loose_overlap;
#[cfg(feature = "full-tests")]
#[path = "odb_loose_objects.rs"]
mod odb_loose_objects;
#[cfg(feature = "full-tests")]
#[path = "odb_loose_store_git_compat.rs"]
mod odb_loose_store_git_compat;
#[cfg(feature = "full-tests")]
#[path = "odb_midx_lookup_passes_git_compat.rs"]
mod odb_midx_lookup_passes_git_compat;
#[path = "odb_object_format.rs"]
mod odb_object_format;
#[path = "odb_open_stream.rs"]
mod odb_open_stream;
#[cfg(feature = "full-tests")]
#[path = "odb_pack_store_git_compat.rs"]
mod odb_pack_store_git_compat;
#[cfg(feature = "full-tests")]
#[path = "odb_peel_git_compat.rs"]
mod odb_peel_git_compat;
#[cfg(feature = "full-tests")]
#[path = "odb_read_commit_git_compat.rs"]
mod odb_read_commit_git_compat;
#[cfg(feature = "full-tests")]
#[path = "odb_read_into.rs"]
mod odb_read_into;
#[cfg(feature = "full-tests")]
#[path = "odb_read_store.rs"]
mod odb_read_store;
#[path = "odb_store_object_safety.rs"]
mod odb_store_object_safety;
#[cfg(feature = "full-tests")]
#[path = "odb_with_stream.rs"]
mod odb_with_stream;
#[cfg(feature = "full-tests")]
#[path = "offload_git_compat.rs"]
mod offload_git_compat;
#[cfg(feature = "full-tests")]
#[path = "oid_abbrev_alternate_pack_collision.rs"]
mod oid_abbrev_alternate_pack_collision;
#[cfg(feature = "full-tests")]
#[path = "oid_abbrev_separate_pack_collision.rs"]
mod oid_abbrev_separate_pack_collision;
#[path = "oid_hashtable_api.rs"]
mod oid_hashtable_api;
#[cfg(feature = "full-tests")]
#[path = "orig_head_git_compat.rs"]
mod orig_head_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pack_bitmap_read_git_compat.rs"]
mod pack_bitmap_read_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pack_bitmap_write_git_compat.rs"]
mod pack_bitmap_write_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pack_build_bitmaps.rs"]
mod pack_build_bitmaps;
#[cfg(feature = "full-tests")]
#[path = "pack_compression_gc.rs"]
mod pack_compression_gc;
#[cfg(feature = "full-tests")]
#[path = "pack_corruption.rs"]
mod pack_corruption;
#[cfg(feature = "full-tests")]
#[path = "pack_delta_search_parallel.rs"]
mod pack_delta_search_parallel;
#[cfg(feature = "full-tests")]
#[path = "pack_deltas.rs"]
mod pack_deltas;
#[cfg(feature = "full-tests")]
#[path = "pack_descriptor_pressure.rs"]
mod pack_descriptor_pressure;
#[cfg(feature = "full-tests")]
#[path = "pack_enumerate_shallow_bitmaps.rs"]
mod pack_enumerate_shallow_bitmaps;
#[cfg(feature = "full-tests")]
#[path = "pack_index_formats.rs"]
mod pack_index_formats;
#[cfg(feature = "full-tests")]
#[path = "pack_index_mmap.rs"]
mod pack_index_mmap;
#[cfg(feature = "full-tests")]
#[path = "pack_index_zero_copy.rs"]
mod pack_index_zero_copy;
#[cfg(feature = "full-tests")]
#[path = "pack_ingest_roundtrip.rs"]
mod pack_ingest_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "pack_objects_git_compat.rs"]
mod pack_objects_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pack_objects_loose_git_compat.rs"]
mod pack_objects_loose_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pack_reuse.rs"]
mod pack_reuse;
#[cfg(feature = "full-tests")]
#[path = "pack_reuse_full_objects.rs"]
mod pack_reuse_full_objects;
#[cfg(feature = "full-tests")]
#[path = "pack_write_parallel.rs"]
mod pack_write_parallel;
#[cfg(feature = "full-tests")]
#[path = "parallel_add_index_git_compat.rs"]
mod parallel_add_index_git_compat;
#[path = "parallel_api.rs"]
mod parallel_api;
#[cfg(feature = "full-tests")]
#[path = "parallel_index_stat_refresh.rs"]
mod parallel_index_stat_refresh;
#[cfg(feature = "full-tests")]
#[path = "partial_clone_maintenance.rs"]
mod partial_clone_maintenance;
#[cfg(feature = "full-tests")]
#[path = "patch_id_hooks.rs"]
mod patch_id_hooks;
#[cfg(feature = "full-tests")]
#[path = "patch_text_roundtrip.rs"]
mod patch_text_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "path_validate_fsck_parity.rs"]
mod path_validate_fsck_parity;
#[path = "pathspec_api_sweep.rs"]
mod pathspec_api_sweep;
#[cfg(feature = "full-tests")]
#[path = "pathspec_attr_repo.rs"]
mod pathspec_attr_repo;
#[cfg(feature = "full-tests")]
#[path = "pathspec_from_file_git_compat.rs"]
mod pathspec_from_file_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pathspec_git_compat.rs"]
mod pathspec_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pick_stash_apply_git_compat.rs"]
mod pick_stash_apply_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pickaxe_git_compat.rs"]
mod pickaxe_git_compat;
#[cfg(feature = "full-tests")]
#[path = "porcelain_injected_ref_store.rs"]
mod porcelain_injected_ref_store;
#[cfg(feature = "full-tests")]
#[path = "porcelain_log_decorations_coverage.rs"]
mod porcelain_log_decorations_coverage;
#[cfg(feature = "full-tests")]
#[path = "porcelain_v2_git_compat.rs"]
mod porcelain_v2_git_compat;
#[cfg(feature = "full-tests")]
#[path = "post_operation_hooks.rs"]
mod post_operation_hooks;
#[cfg(feature = "full-tests")]
#[path = "pre_push_hook.rs"]
mod pre_push_hook;
#[cfg(feature = "full-tests")]
#[path = "precompose_system_git_roundtrip.rs"]
mod precompose_system_git_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "promisor_on_demand_fetch.rs"]
mod promisor_on_demand_fetch;
#[cfg(feature = "full-tests")]
#[path = "promisor_packs.rs"]
mod promisor_packs;
#[cfg(feature = "full-tests")]
#[path = "promisor_remote_git_compat.rs"]
mod promisor_remote_git_compat;
#[path = "promisor_remote_handshake.rs"]
mod promisor_remote_handshake;
#[path = "promisor_remote_local.rs"]
mod promisor_remote_local;
#[path = "pruned_modules.rs"]
mod pruned_modules;
#[path = "published_crates_declare_rust_version.rs"]
mod published_crates_declare_rust_version;
#[cfg(feature = "full-tests")]
#[path = "pull_git_compat.rs"]
mod pull_git_compat;
#[cfg(feature = "full-tests")]
#[path = "pull_rebase_git_compat.rs"]
mod pull_rebase_git_compat;
#[path = "push_cancel.rs"]
mod push_cancel;
#[cfg(feature = "full-tests")]
#[path = "push_cancel_git_compat.rs"]
mod push_cancel_git_compat;
#[cfg(feature = "full-tests")]
#[path = "push_delete_local_git_compat.rs"]
mod push_delete_local_git_compat;
#[cfg(feature = "full-tests")]
#[path = "push_delete_missing_remote.rs"]
mod push_delete_missing_remote;
#[path = "push_delete_ref_resolve.rs"]
mod push_delete_ref_resolve;
#[path = "push_fast_deep_history.rs"]
mod push_fast_deep_history;
#[cfg(feature = "full-tests")]
#[path = "push_flags_git_compat.rs"]
mod push_flags_git_compat;
#[cfg(feature = "full-tests")]
#[path = "push_lease_git_compat.rs"]
mod push_lease_git_compat;
#[cfg(feature = "full-tests")]
#[path = "push_local_receive_hooks_git_compat.rs"]
mod push_local_receive_hooks_git_compat;
#[cfg(feature = "full-tests")]
#[path = "push_plan_git_compat.rs"]
mod push_plan_git_compat;
#[cfg(feature = "full-tests")]
#[path = "quote_path_git_compat.rs"]
mod quote_path_git_compat;
#[cfg(feature = "full-tests")]
#[path = "racy_index_git_compat.rs"]
mod racy_index_git_compat;
#[cfg(feature = "full-tests")]
#[path = "read_info_git_compat.rs"]
mod read_info_git_compat;
#[cfg(feature = "full-tests")]
#[path = "ref_dir_file_conflict_2198.rs"]
mod ref_dir_file_conflict_2198;
#[cfg(feature = "full-tests")]
#[path = "ref_name_validation_git_compat.rs"]
mod ref_name_validation_git_compat;
#[path = "ref_target_verification.rs"]
mod ref_target_verification;
#[cfg(feature = "full-tests")]
#[path = "ref_target_verification_git_compat.rs"]
mod ref_target_verification_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reference_transaction_hook.rs"]
mod reference_transaction_hook;
#[cfg(feature = "full-tests")]
#[path = "reflog_expire_dry_run.rs"]
mod reflog_expire_dry_run;
#[cfg(feature = "full-tests")]
#[path = "reflog_expire_history.rs"]
mod reflog_expire_history;
#[path = "reflog_handle_coverage.rs"]
mod reflog_handle_coverage;
#[path = "reflog_injected_ref_store.rs"]
mod reflog_injected_ref_store;
#[cfg(feature = "full-tests")]
#[path = "reflog_query_git_compat.rs"]
mod reflog_query_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reflog_rewrite_concurrent.rs"]
mod reflog_rewrite_concurrent;
#[cfg(feature = "full-tests")]
#[path = "reflog_rewrite_race.rs"]
mod reflog_rewrite_race;
#[cfg(feature = "full-tests")]
#[path = "reflog_roundtrip.rs"]
mod reflog_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "reflog_signature_git_compat.rs"]
mod reflog_signature_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reflog_store_edits_git_compat.rs"]
mod reflog_store_edits_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reflog_transaction_identity.rs"]
mod reflog_transaction_identity;
#[path = "refs_abstraction_guard.rs"]
mod refs_abstraction_guard;
#[path = "refs_api_coverage.rs"]
mod refs_api_coverage;
#[path = "refs_fsck_coverage.rs"]
mod refs_fsck_coverage;
#[cfg(feature = "full-tests")]
#[path = "refs_harness_smoke.rs"]
mod refs_harness_smoke;
#[path = "refs_line_coverage.rs"]
mod refs_line_coverage;
#[cfg(feature = "full-tests")]
#[path = "refs_list_empty_prefix_git.rs"]
mod refs_list_empty_prefix_git;
#[path = "refs_listing_public_coverage.rs"]
mod refs_listing_public_coverage;
#[path = "refs_lock_coverage.rs"]
mod refs_lock_coverage;
#[cfg(feature = "full-tests")]
#[path = "refs_loose_symref.rs"]
mod refs_loose_symref;
#[cfg(feature = "full-tests")]
#[path = "refs_packed.rs"]
mod refs_packed;
#[cfg(feature = "full-tests")]
#[path = "refs_packed_binary_search_git_compat.rs"]
mod refs_packed_binary_search_git_compat;
#[cfg(feature = "full-tests")]
#[path = "refs_packed_prefix_unsorted.rs"]
mod refs_packed_prefix_unsorted;
#[cfg(feature = "full-tests")]
#[path = "refs_query_git_compat.rs"]
mod refs_query_git_compat;
#[cfg(feature = "full-tests")]
#[path = "refs_query_reachability_git_compat.rs"]
mod refs_query_reachability_git_compat;
#[cfg(feature = "full-tests")]
#[path = "refs_transactions.rs"]
mod refs_transactions;
#[path = "refs_verify_batch_coverage.rs"]
mod refs_verify_batch_coverage;
#[cfg(feature = "full-tests")]
#[path = "refs_version_sort_git_oracle.rs"]
mod refs_version_sort_git_oracle;
#[path = "refs_write_delete_coverage.rs"]
mod refs_write_delete_coverage;
#[cfg(feature = "full-tests")]
#[path = "refstore_batch_transport.rs"]
mod refstore_batch_transport;
#[path = "refstore_conformance_files.rs"]
mod refstore_conformance_files;
#[cfg(feature = "full-tests")]
#[path = "refstore_conformance_memory.rs"]
mod refstore_conformance_memory;
#[path = "refstore_conformance_reftable.rs"]
mod refstore_conformance_reftable;
#[path = "refstore_custom_backend.rs"]
mod refstore_custom_backend;
#[path = "refstore_lock_wait.rs"]
mod refstore_lock_wait;
#[cfg(feature = "full-tests")]
#[path = "refstore_lock_wait_git_compat.rs"]
mod refstore_lock_wait_git_compat;
#[path = "refstore_reftable_create_race.rs"]
mod refstore_reftable_create_race;
#[cfg(feature = "full-tests")]
#[path = "refstore_rejected_updates_git_compat.rs"]
mod refstore_rejected_updates_git_compat;
#[path = "reftable_batch_df_regressions.rs"]
mod reftable_batch_df_regressions;
#[path = "reftable_format.rs"]
mod reftable_format;
#[cfg(feature = "full-tests")]
#[path = "reftable_stack_coverage.rs"]
mod reftable_stack_coverage;
#[cfg(feature = "full-tests")]
#[path = "reftable_stack_for_each.rs"]
mod reftable_stack_for_each;
#[cfg(feature = "full-tests")]
#[path = "reftable_stack_interop.rs"]
mod reftable_stack_interop;
#[cfg(feature = "full-tests")]
#[path = "reftable_store_git_roundtrip.rs"]
mod reftable_store_git_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "reftable_worktree_git_compat.rs"]
mod reftable_worktree_git_compat;
#[path = "reftable_worktree_head_deref.rs"]
mod reftable_worktree_head_deref;
#[cfg(feature = "full-tests")]
#[path = "remote_config_git_compat.rs"]
mod remote_config_git_compat;
#[cfg(feature = "full-tests")]
#[path = "remote_injected_ref_store.rs"]
mod remote_injected_ref_store;
#[cfg(feature = "full-tests")]
#[path = "remote_inspect_git_compat.rs"]
mod remote_inspect_git_compat;
#[cfg(feature = "full-tests")]
#[path = "remote_prune_set_head_git_compat.rs"]
mod remote_prune_set_head_git_compat;
#[cfg(feature = "full-tests")]
#[path = "remote_remove_git_compat.rs"]
mod remote_remove_git_compat;
#[cfg(feature = "full-tests")]
#[path = "remote_set_url_git_compat.rs"]
mod remote_set_url_git_compat;
#[cfg(feature = "full-tests")]
#[path = "remote_unreadable.rs"]
mod remote_unreadable;
#[cfg(feature = "full-tests")]
#[path = "repack_delta_reuse_git_compat.rs"]
mod repack_delta_reuse_git_compat;
#[cfg(feature = "full-tests")]
#[path = "repack_rewrite_streaming.rs"]
mod repack_rewrite_streaming;
#[cfg(feature = "full-tests")]
#[path = "repack_roundtrip.rs"]
mod repack_roundtrip;
#[cfg(feature = "full-tests")]
#[path = "replay_engine.rs"]
mod replay_engine;
#[cfg(feature = "full-tests")]
#[path = "replay_predict_git_compat.rs"]
mod replay_predict_git_compat;
#[cfg(feature = "full-tests")]
#[path = "replay_sequence_cancel.rs"]
mod replay_sequence_cancel;
#[cfg(feature = "full-tests")]
#[path = "replay_sequence_git_compat.rs"]
mod replay_sequence_git_compat;
#[cfg(feature = "full-tests")]
#[path = "replay_wide_pick_git_compat.rs"]
mod replay_wide_pick_git_compat;
#[cfg(feature = "full-tests")]
#[path = "repo_handles_core.rs"]
mod repo_handles_core;
#[cfg(feature = "full-tests")]
#[path = "repo_handles_more.rs"]
mod repo_handles_more;
#[cfg(feature = "full-tests")]
#[path = "repo_open_init.rs"]
mod repo_open_init;
#[cfg(feature = "full-tests")]
#[path = "repo_setup_git_compat.rs"]
mod repo_setup_git_compat;
#[cfg(feature = "full-tests")]
#[path = "repo_shared_init_git_compat.rs"]
mod repo_shared_init_git_compat;
#[path = "repo_total_coverage_sweep.rs"]
mod repo_total_coverage_sweep;
#[path = "repository_injected_backends_no_layout.rs"]
mod repository_injected_backends_no_layout;
#[cfg(feature = "full-tests")]
#[path = "repository_refstore_git_namespace.rs"]
mod repository_refstore_git_namespace;
#[cfg(feature = "full-tests")]
#[path = "repository_with_memory_ref_store.rs"]
mod repository_with_memory_ref_store;
#[cfg(feature = "full-tests")]
#[path = "rerere_git_compat.rs"]
mod rerere_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reset_clears_operation_state.rs"]
mod reset_clears_operation_state;
#[cfg(feature = "full-tests")]
#[path = "reset_git_compat.rs"]
mod reset_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reset_hard_at_head_preserves_mtime.rs"]
mod reset_hard_at_head_preserves_mtime;
#[path = "reset_hard_at_head_restores_worktree.rs"]
mod reset_hard_at_head_restores_worktree;
#[cfg(feature = "full-tests")]
#[path = "reset_hard_cancel.rs"]
mod reset_hard_cancel;
#[cfg(feature = "full-tests")]
#[path = "reset_hard_wide_perf_git_compat.rs"]
mod reset_hard_wide_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "reset_invalid_signature.rs"]
mod reset_invalid_signature;
#[cfg(feature = "full-tests")]
#[path = "resolve_cat.rs"]
mod resolve_cat;
#[cfg(feature = "full-tests")]
#[path = "resolve_ref_name_git_compat.rs"]
mod resolve_ref_name_git_compat;
#[cfg(feature = "full-tests")]
#[path = "resolve_verify_git_compat.rs"]
mod resolve_verify_git_compat;
#[cfg(feature = "full-tests")]
#[path = "resolve_worktree_pathspec.rs"]
mod resolve_worktree_pathspec;
#[cfg(feature = "full-tests")]
#[path = "restore_conflict_git_compat.rs"]
mod restore_conflict_git_compat;
#[cfg(feature = "full-tests")]
#[path = "restore_git_compat.rs"]
mod restore_git_compat;
#[cfg(feature = "full-tests")]
#[path = "restore_hunks_git_compat.rs"]
mod restore_hunks_git_compat;
#[cfg(feature = "full-tests")]
#[path = "restore_staged_conflict_issue_2155.rs"]
mod restore_staged_conflict_issue_2155;
#[cfg(feature = "full-tests")]
#[path = "rev_list_bitmaps.rs"]
mod rev_list_bitmaps;
#[cfg(feature = "full-tests")]
#[path = "rev_list_commit_filter_git_compat.rs"]
mod rev_list_commit_filter_git_compat;
#[cfg(feature = "full-tests")]
#[path = "rev_list_commit_graph_walk.rs"]
mod rev_list_commit_graph_walk;
#[path = "rev_list_diff_coverage_sweep.rs"]
mod rev_list_diff_coverage_sweep;
#[cfg(feature = "full-tests")]
#[path = "rev_list_format_git_compat.rs"]
mod rev_list_format_git_compat;
#[path = "rev_list_object_segments.rs"]
mod rev_list_object_segments;
#[cfg(feature = "full-tests")]
#[path = "rev_list_object_walk_roots_git_compat.rs"]
mod rev_list_object_walk_roots_git_compat;
#[cfg(feature = "full-tests")]
#[path = "rev_list_ordering.rs"]
mod rev_list_ordering;
#[cfg(feature = "full-tests")]
#[path = "rev_list_path_limited_git_compat.rs"]
mod rev_list_path_limited_git_compat;
#[cfg(feature = "full-tests")]
#[path = "rev_list_pathspec_tree_kind.rs"]
mod rev_list_pathspec_tree_kind;
#[path = "rev_list_s1_git.rs"]
mod rev_list_s1_git;
#[cfg(feature = "full-tests")]
#[path = "rev_list_simplify_objects.rs"]
mod rev_list_simplify_objects;
#[cfg(feature = "full-tests")]
#[path = "rev_list_stdin_ref_glob_git_compat.rs"]
mod rev_list_stdin_ref_glob_git_compat;
#[cfg(feature = "full-tests")]
#[path = "rev_list_upstream_t6019_t6000.rs"]
mod rev_list_upstream_t6019_t6000;
#[path = "rev_list_walk_exercises.rs"]
mod rev_list_walk_exercises;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_ambiguous_public.rs"]
mod rev_parse_ambiguous_public;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_comprehensive_coverage.rs"]
mod rev_parse_comprehensive_coverage;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_coverage_1270.rs"]
mod rev_parse_coverage_1270;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_coverage_floor.rs"]
mod rev_parse_coverage_floor;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_diagnose_paths.rs"]
mod rev_parse_diagnose_paths;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_exercise.rs"]
mod rev_parse_exercise;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_line_coverage.rs"]
mod rev_parse_line_coverage;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_reflog_date_git_compat.rs"]
mod rev_parse_reflog_date_git_compat;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_resolve_sweep.rs"]
mod rev_parse_resolve_sweep;
#[path = "rev_parse_rev_list_errors.rs"]
mod rev_parse_rev_list_errors;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_scenario_coverage.rs"]
mod rev_parse_scenario_coverage;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_spec_matrix.rs"]
mod rev_parse_spec_matrix;
#[cfg(feature = "full-tests")]
#[path = "rev_parse_syntax.rs"]
mod rev_parse_syntax;
#[cfg(feature = "full-tests")]
#[path = "revert_range_order_git_compat.rs"]
mod revert_range_order_git_compat;
#[cfg(feature = "full-tests")]
#[path = "revision_label_git_compat.rs"]
mod revision_label_git_compat;
#[cfg(feature = "full-tests")]
#[path = "revwalk_coverage_floor.rs"]
mod revwalk_coverage_floor;
#[cfg(feature = "full-tests")]
#[path = "revwalk_injected_ref_store.rs"]
mod revwalk_injected_ref_store;
#[cfg(feature = "full-tests")]
#[path = "revwalk_queries.rs"]
mod revwalk_queries;
#[cfg(feature = "full-tests")]
#[path = "revwalk_symmetric_counts_git_compat.rs"]
mod revwalk_symmetric_counts_git_compat;
#[cfg(feature = "full-tests")]
#[path = "revwalk_walk_specs_git_compat.rs"]
mod revwalk_walk_specs_git_compat;
#[path = "rm_autocrlf_system_config.rs"]
mod rm_autocrlf_system_config;
#[cfg(feature = "full-tests")]
#[path = "rm_mv_clean_dry_run_git_compat.rs"]
mod rm_mv_clean_dry_run_git_compat;
#[cfg(feature = "full-tests")]
#[path = "rm_mv_git_compat.rs"]
mod rm_mv_git_compat;
#[cfg(feature = "full-tests")]
#[path = "s7_pick_revert_merge_differential.rs"]
mod s7_pick_revert_merge_differential;
#[path = "serde_models.rs"]
mod serde_models;
#[cfg(feature = "full-tests")]
#[path = "serde_models_git_compat.rs"]
mod serde_models_git_compat;
#[cfg(feature = "full-tests")]
#[path = "serve_ls_refs_prefix.rs"]
mod serve_ls_refs_prefix;
#[path = "serve_promisor_remote.rs"]
mod serve_promisor_remote;
#[cfg(feature = "full-tests")]
#[path = "serve_receive_connectivity.rs"]
mod serve_receive_connectivity;
#[cfg(feature = "full-tests")]
#[path = "serve_receive_deny_non_ff.rs"]
mod serve_receive_deny_non_ff;
#[cfg(feature = "full-tests")]
#[path = "serve_receive_fsck_objects.rs"]
mod serve_receive_fsck_objects;
#[cfg(feature = "full-tests")]
#[path = "serve_receive_hooks.rs"]
mod serve_receive_hooks;
#[cfg(feature = "full-tests")]
#[path = "serve_receive_pack.rs"]
mod serve_receive_pack;
#[cfg(feature = "full-tests")]
#[path = "serve_shallow_filter.rs"]
mod serve_shallow_filter;
#[cfg(feature = "full-tests")]
#[path = "serve_shallow_include_tag.rs"]
mod serve_shallow_include_tag;
#[path = "serve_upload_pack_advertise.rs"]
mod serve_upload_pack_advertise;
#[cfg(feature = "full-tests")]
#[path = "serve_upload_pack_inprocess.rs"]
mod serve_upload_pack_inprocess;
#[path = "serve_upload_pack_promisor.rs"]
mod serve_upload_pack_promisor;
#[cfg(feature = "full-tests")]
#[path = "serve_upload_pack_v2_fetch.rs"]
mod serve_upload_pack_v2_fetch;
#[path = "session_cancel.rs"]
mod session_cancel;
#[cfg(feature = "full-tests")]
#[path = "session_cancel_git_compat.rs"]
mod session_cancel_git_compat;
#[cfg(feature = "full-tests")]
#[path = "sha1dc_ingestion.rs"]
mod sha1dc_ingestion;
#[cfg(feature = "full-tests")]
#[path = "sha256_fsck_gc_clone_git_compat.rs"]
mod sha256_fsck_gc_clone_git_compat;
#[cfg(feature = "full-tests")]
#[path = "sha256_midx_commit_graph.rs"]
mod sha256_midx_commit_graph;
#[cfg(feature = "full-tests")]
#[path = "sha256_worktree.rs"]
mod sha256_worktree;
#[cfg(feature = "full-tests")]
#[path = "shallow_deepen_single_commit.rs"]
mod shallow_deepen_single_commit;
#[cfg(feature = "full-tests")]
#[path = "shallow_maintenance_git_compat.rs"]
mod shallow_maintenance_git_compat;
#[cfg(feature = "full-tests")]
#[path = "signing_commit_git_compat.rs"]
mod signing_commit_git_compat;
#[cfg(feature = "full-tests")]
#[path = "sparse_checkout_checkout.rs"]
mod sparse_checkout_checkout;
#[cfg(feature = "full-tests")]
#[path = "sparse_checkout_git_compat.rs"]
mod sparse_checkout_git_compat;
#[cfg(feature = "full-tests")]
#[path = "sparse_index_collapse_git_compat.rs"]
mod sparse_index_collapse_git_compat;
#[cfg(feature = "full-tests")]
#[path = "sparse_oid_filter_git_compat.rs"]
mod sparse_oid_filter_git_compat;
#[cfg(feature = "full-tests")]
#[path = "split_index_git_compat.rs"]
mod split_index_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stage_tracked_chunked_restage_git_compat.rs"]
mod stage_tracked_chunked_restage_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stage_type_flip_issue_2170.rs"]
mod stage_type_flip_issue_2170;
#[cfg(feature = "full-tests")]
#[path = "stash_apply_autocrlf.rs"]
mod stash_apply_autocrlf;
#[cfg(feature = "full-tests")]
#[path = "stash_apply_git_compat.rs"]
mod stash_apply_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stash_apply_outcome_git_compat.rs"]
mod stash_apply_outcome_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stash_diff_stat_git_compat.rs"]
mod stash_diff_stat_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stash_git_compat.rs"]
mod stash_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stash_pathspec_git_compat.rs"]
mod stash_pathspec_git_compat;
#[cfg(feature = "full-tests")]
#[path = "stash_push_modes_git_compat.rs"]
mod stash_push_modes_git_compat;
#[cfg(feature = "full-tests")]
#[path = "state_git_am_in_progress.rs"]
mod state_git_am_in_progress;
#[cfg(feature = "full-tests")]
#[path = "status_50k_perf_git_compat.rs"]
mod status_50k_perf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_add_special_files_git_compat.rs"]
mod status_add_special_files_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_cancel_mid_scan.rs"]
mod status_cancel_mid_scan;
#[cfg(feature = "full-tests")]
#[path = "status_guidance_git_compat.rs"]
mod status_guidance_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_ignored_collapse_git_compat.rs"]
mod status_ignored_collapse_git_compat;
#[path = "status_index_refresh_race.rs"]
mod status_index_refresh_race;
#[cfg(feature = "full-tests")]
#[path = "status_merge_conflicts_git_compat.rs"]
mod status_merge_conflicts_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_non_utf8_gitlink_git_compat.rs"]
mod status_non_utf8_gitlink_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_parallel.rs"]
mod status_parallel;
#[cfg(feature = "full-tests")]
#[path = "status_path_buffer_git_compat.rs"]
mod status_path_buffer_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_scan_memory.rs"]
mod status_scan_memory;
#[cfg(feature = "full-tests")]
#[path = "status_symlink_ancestor_git_compat.rs"]
mod status_symlink_ancestor_git_compat;
#[path = "status_system_autocrlf_git_compat.rs"]
mod status_system_autocrlf_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_tracked_listing_git_compat.rs"]
mod status_tracked_listing_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_unmerged_kinds_git_compat.rs"]
mod status_unmerged_kinds_git_compat;
#[cfg(feature = "full-tests")]
#[path = "status_unreadable_tracked_file_2107.rs"]
mod status_unreadable_tracked_file_2107;
#[cfg(feature = "full-tests")]
#[path = "structured_diff_git_compat.rs"]
mod structured_diff_git_compat;
#[path = "submodule_gitdir_sweep.rs"]
mod submodule_gitdir_sweep;
#[path = "supporting_modules_sweep.rs"]
mod supporting_modules_sweep;
#[path = "supporting_public_fn_coverage.rs"]
mod supporting_public_fn_coverage;
#[cfg(feature = "full-tests")]
#[path = "switch_delete_readonly_parent_1968.rs"]
mod switch_delete_readonly_parent_1968;
#[cfg(feature = "full-tests")]
#[path = "switch_no_checkout_git_compat.rs"]
mod switch_no_checkout_git_compat;
#[cfg(feature = "full-tests")]
#[path = "switch_reflog_git_compat.rs"]
mod switch_reflog_git_compat;
#[cfg(feature = "full-tests")]
#[path = "switch_tree_diff_git_compat.rs"]
mod switch_tree_diff_git_compat;
#[cfg(feature = "full-tests")]
#[path = "switch_would_overwrite_git_compat.rs"]
mod switch_would_overwrite_git_compat;
#[cfg(feature = "full-tests")]
#[path = "symlinks_disabled_staging_git_compat.rs"]
mod symlinks_disabled_staging_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tag_annotated_git_compat.rs"]
mod tag_annotated_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tag_create_force_git_compat.rs"]
mod tag_create_force_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tag_extra_headers_git_compat.rs"]
mod tag_extra_headers_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tag_list_git_compat.rs"]
mod tag_list_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tag_packed_peel_git_compat.rs"]
mod tag_packed_peel_git_compat;
#[cfg(feature = "full-tests")]
#[path = "target_comparison_git_compat.rs"]
mod target_comparison_git_compat;
#[path = "total_line_coverage_sweep.rs"]
mod total_line_coverage_sweep;
#[path = "total_misc_module_sweep.rs"]
mod total_misc_module_sweep;
#[path = "total_supporting_api_sweep.rs"]
mod total_supporting_api_sweep;
#[cfg(feature = "full-tests")]
#[path = "trailer_git_compat.rs"]
mod trailer_git_compat;
#[cfg(feature = "full-tests")]
#[path = "transfer_cargo_mirror.rs"]
mod transfer_cargo_mirror;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_copy_perf.rs"]
mod transfer_local_copy_perf;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_fetch.rs"]
mod transfer_local_fetch;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_fetch_following_incr.rs"]
mod transfer_local_fetch_following_incr;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_fetch_moved_tag.rs"]
mod transfer_local_fetch_moved_tag;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_fetch_shallow.rs"]
mod transfer_local_fetch_shallow;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_mixed_storage.rs"]
mod transfer_local_mixed_storage;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_push.rs"]
mod transfer_local_push;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_push_receive_hooks.rs"]
mod transfer_local_push_receive_hooks;
#[cfg(feature = "full-tests")]
#[path = "transfer_local_push_receive_policy.rs"]
mod transfer_local_push_receive_policy;
#[cfg(feature = "full-tests")]
#[path = "transfer_maint.rs"]
mod transfer_maint;
#[cfg(feature = "full-tests")]
#[path = "transfer_pack.rs"]
mod transfer_pack;
#[cfg(feature = "full-tests")]
#[path = "transport_daemon_noop_flush.rs"]
mod transport_daemon_noop_flush;
#[cfg(feature = "full-tests")]
#[path = "transport_git_daemon.rs"]
mod transport_git_daemon;
#[cfg(feature = "full-tests")]
#[path = "transport_git_daemon_v2.rs"]
mod transport_git_daemon_v2;
#[cfg(feature = "full-tests")]
#[path = "transport_http.rs"]
mod transport_http;
#[cfg(feature = "full-tests")]
#[path = "transport_http_auth.rs"]
mod transport_http_auth;
#[cfg(feature = "full-tests")]
#[path = "transport_http_proxy_cookies.rs"]
mod transport_http_proxy_cookies;
#[cfg(feature = "full-tests")]
#[path = "transport_http_redirect_auth.rs"]
mod transport_http_redirect_auth;
#[cfg(feature = "full-tests")]
#[path = "transport_http_shallow.rs"]
mod transport_http_shallow;
#[cfg(feature = "full-tests")]
#[path = "transport_push.rs"]
mod transport_push;
#[cfg(feature = "full-tests")]
#[path = "transport_push_options.rs"]
mod transport_push_options;
#[cfg(feature = "full-tests")]
#[path = "transport_shallow.rs"]
mod transport_shallow;
#[cfg(feature = "full-tests")]
#[path = "transport_ssh.rs"]
mod transport_ssh;
#[cfg(feature = "full-tests")]
#[path = "transport_ssh_push.rs"]
mod transport_ssh_push;
#[cfg(feature = "full-tests")]
#[path = "transport_v2_adversarial.rs"]
mod transport_v2_adversarial;
#[cfg(feature = "full-tests")]
#[path = "tree_ref_iter.rs"]
mod tree_ref_iter;
#[path = "tree_sha256_coverage.rs"]
mod tree_sha256_coverage;
#[cfg(feature = "full-tests")]
#[path = "tree_sha256_git_compat.rs"]
mod tree_sha256_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tree_sha256_tag_claim_git_compat.rs"]
mod tree_sha256_tag_claim_git_compat;
#[cfg(feature = "full-tests")]
#[path = "tree_sha256_tag_git_compat.rs"]
mod tree_sha256_tag_git_compat;
#[path = "tree_sha256_verify_coverage.rs"]
mod tree_sha256_verify_coverage;
#[cfg(feature = "full-tests")]
#[path = "tree_sha256_verify_git_compat.rs"]
mod tree_sha256_verify_git_compat;
#[cfg(feature = "full-tests")]
#[path = "typed_errors_config_refs_filter.rs"]
mod typed_errors_config_refs_filter;
#[cfg(feature = "full-tests")]
#[path = "typed_reports.rs"]
mod typed_reports;
#[cfg(feature = "full-tests")]
#[path = "uncommitted_diff_git_compat.rs"]
mod uncommitted_diff_git_compat;
#[cfg(feature = "full-tests")]
#[path = "untracked_cache_git_compat.rs"]
mod untracked_cache_git_compat;
#[cfg(feature = "full-tests")]
#[path = "upload_pack_blob_memory_support.rs"]
mod upload_pack_blob_memory_support;
#[cfg(feature = "full-tests")]
#[path = "upload_pack_filter.rs"]
mod upload_pack_filter;
#[cfg(feature = "full-tests")]
#[path = "userdiff_hunk_header_git_compat.rs"]
mod userdiff_hunk_header_git_compat;
#[cfg(feature = "full-tests")]
#[path = "wildmatch_vectors.rs"]
mod wildmatch_vectors;
#[cfg(feature = "full-tests")]
#[path = "worktree_add_options_git_compat.rs"]
mod worktree_add_options_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_add_orphan_git_compat.rs"]
mod worktree_add_orphan_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_branch_exclusive_git_compat.rs"]
mod worktree_branch_exclusive_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_extended_git_compat.rs"]
mod worktree_extended_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_git_compat.rs"]
mod worktree_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_linked_git_compat.rs"]
mod worktree_linked_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_list_fields_git_compat.rs"]
mod worktree_list_fields_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_missing_registered_980.rs"]
mod worktree_missing_registered_980;
#[cfg(feature = "full-tests")]
#[path = "worktree_move_repair_git_compat.rs"]
mod worktree_move_repair_git_compat;
#[path = "worktree_path_io_1915.rs"]
mod worktree_path_io_1915;
#[cfg(feature = "full-tests")]
#[path = "worktree_prune_missing_gitfile_git_compat.rs"]
mod worktree_prune_missing_gitfile_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_remove_1001_regression.rs"]
mod worktree_remove_1001_regression;
#[cfg(feature = "full-tests")]
#[path = "worktree_remove_1232_regression.rs"]
mod worktree_remove_1232_regression;
#[cfg(feature = "full-tests")]
#[path = "worktree_scan_50k_probe_git_compat.rs"]
mod worktree_scan_50k_probe_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_scan_ignorecase_git_compat.rs"]
mod worktree_scan_ignorecase_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_scan_nested_49k_probe_git_compat.rs"]
mod worktree_scan_nested_49k_probe_git_compat;
#[cfg(feature = "full-tests")]
#[path = "worktree_typed_errors.rs"]
mod worktree_typed_errors;
#[cfg(feature = "full-tests")]
#[path = "zlib_inflate_git_compat.rs"]
mod zlib_inflate_git_compat;

/// Fails when a file in `tests/` is neither a module above nor a `[[test]]`
/// target in Cargo.toml: with `autotests = false` cargo would never build it.
#[test]
fn every_test_file_is_compiled() {
    let entry = include_str!("integration.rs");
    let manifest = include_str!("../Cargo.toml");
    let dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("tests");
    let mut missing = Vec::new();
    for item in std::fs::read_dir(&dir).expect("read tests/") {
        let name = item.expect("tests/ entry").file_name();
        let Some(name) = name.to_str() else { continue };
        if !name.ends_with(".rs") || name == "integration.rs" {
            continue;
        }
        let module = format!("#[path = \"{name}\"]");
        let target = format!("path = \"tests/{name}\"");
        if !entry.contains(&module) && !manifest.contains(&target) {
            missing.push(name.to_owned());
        }
    }
    missing.sort();
    assert!(
        missing.is_empty(),
        "tests/{missing:?} would never be built: run `python3 scripts/sync_integration_tests.py` \
         to add them to tests/integration.rs, or give one a [[test]] entry in Cargo.toml \
         if it must run in its own process"
    );
}