Commit 1c7d7eb
committed
odb: add write_packfile, for_each_unique_abbrev, convert_object_id
Add three vtable methods to odb_source that were not part of the
recent ps/odb-sources and ps/object-counting series:
- write_packfile: ingest a pack from a file descriptor. The files
backend chooses between index-pack (large packs) and
unpack-objects (small packs below fetch.unpackLimit). Options
cover thin-pack fixing, promisor marking, fsck, lockfile
capture, and shallow file passing.
- for_each_unique_abbrev: iterate objects matching a hex prefix
for disambiguation. Searches loose objects via oidtree, then
multi-pack indices, then non-MIDX packs.
- convert_object_id: translate between hash algorithms using the
loose object map. Used during SHA-1 to SHA-256 migration.
Also add ODB_SOURCE_HELPER to the source type enum, preparing for
the helper backend in the next commit.
The write_packfile vtable method replaces the pattern where callers
spawn index-pack/unpack-objects directly. fast-import already uses
odb_write_packfile() and this allows non-files backends to handle
pack ingestion through their own mechanism.
Signed-off-by: Aaron Paterson <apaterson@pm.me>1 parent 41688c1 commit 1c7d7eb
11 files changed
Lines changed: 604 additions & 242 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
518 | 518 | | |
519 | 519 | | |
520 | 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 | 521 | | |
547 | 522 | | |
548 | 523 | | |
| |||
786 | 761 | | |
787 | 762 | | |
788 | 763 | | |
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 | 764 | | |
840 | 765 | | |
841 | 766 | | |
842 | 767 | | |
843 | 768 | | |
844 | 769 | | |
845 | 770 | | |
| 771 | + | |
| 772 | + | |
846 | 773 | | |
847 | 774 | | |
848 | 775 | | |
849 | 776 | | |
850 | 777 | | |
851 | 778 | | |
852 | | - | |
853 | | - | |
854 | | - | |
855 | | - | |
856 | | - | |
857 | | - | |
858 | | - | |
859 | | - | |
860 | | - | |
861 | | - | |
862 | | - | |
863 | | - | |
864 | | - | |
865 | | - | |
866 | | - | |
867 | | - | |
868 | | - | |
869 | 779 | | |
870 | 780 | | |
871 | 781 | | |
| |||
876 | 786 | | |
877 | 787 | | |
878 | 788 | | |
879 | | - | |
880 | | - | |
881 | 789 | | |
882 | | - | |
883 | 790 | | |
884 | 791 | | |
885 | 792 | | |
| |||
891 | 798 | | |
892 | 799 | | |
893 | 800 | | |
894 | | - | |
895 | | - | |
896 | | - | |
897 | | - | |
898 | | - | |
899 | | - | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
900 | 804 | | |
901 | | - | |
902 | | - | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
903 | 808 | | |
904 | | - | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | | - | |
909 | | - | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
910 | 815 | | |
911 | 816 | | |
912 | 817 | | |
913 | | - | |
| 818 | + | |
| 819 | + | |
914 | 820 | | |
915 | 821 | | |
916 | 822 | | |
| |||
930 | 836 | | |
931 | 837 | | |
932 | 838 | | |
933 | | - | |
934 | 839 | | |
935 | 840 | | |
936 | 841 | | |
| |||
956 | 861 | | |
957 | 862 | | |
958 | 863 | | |
959 | | - | |
960 | 864 | | |
961 | 865 | | |
962 | 866 | | |
| |||
982 | 886 | | |
983 | 887 | | |
984 | 888 | | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | | - | |
| 889 | + | |
990 | 890 | | |
991 | 891 | | |
992 | 892 | | |
| |||
1106 | 1006 | | |
1107 | 1007 | | |
1108 | 1008 | | |
1109 | | - | |
1110 | 1009 | | |
1111 | 1010 | | |
1112 | 1011 | | |
| |||
1189 | 1088 | | |
1190 | 1089 | | |
1191 | 1090 | | |
1192 | | - | |
1193 | | - | |
1194 | | - | |
1195 | | - | |
1196 | | - | |
| 1091 | + | |
1197 | 1092 | | |
1198 | 1093 | | |
1199 | 1094 | | |
| |||
1239 | 1134 | | |
1240 | 1135 | | |
1241 | 1136 | | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
1242 | 1147 | | |
1243 | 1148 | | |
1244 | 1149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1541 | 1541 | | |
1542 | 1542 | | |
1543 | 1543 | | |
1544 | | - | |
| 1544 | + | |
1545 | 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 | | - | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
1595 | 1553 | | |
1596 | 1554 | | |
1597 | 1555 | | |
| |||
1657 | 1615 | | |
1658 | 1616 | | |
1659 | 1617 | | |
1660 | | - | |
| 1618 | + | |
1661 | 1619 | | |
1662 | 1620 | | |
1663 | 1621 | | |
| |||
1726 | 1684 | | |
1727 | 1685 | | |
1728 | 1686 | | |
1729 | | - | |
1730 | | - | |
1731 | 1687 | | |
1732 | 1688 | | |
1733 | 1689 | | |
| |||
1757 | 1713 | | |
1758 | 1714 | | |
1759 | 1715 | | |
1760 | | - | |
1761 | | - | |
1762 | | - | |
1763 | | - | |
1764 | | - | |
1765 | | - | |
1766 | | - | |
1767 | | - | |
1768 | | - | |
1769 | | - | |
1770 | | - | |
1771 | | - | |
1772 | | - | |
| 1716 | + | |
| 1717 | + | |
1773 | 1718 | | |
1774 | | - | |
1775 | | - | |
1776 | | - | |
1777 | | - | |
1778 | | - | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
1779 | 1728 | | |
1780 | 1729 | | |
1781 | 1730 | | |
| |||
4065 | 4014 | | |
4066 | 4015 | | |
4067 | 4016 | | |
4068 | | - | |
| 4017 | + | |
4069 | 4018 | | |
4070 | 4019 | | |
4071 | 4020 | | |
| |||
4365 | 4314 | | |
4366 | 4315 | | |
4367 | 4316 | | |
4368 | | - | |
4369 | | - | |
4370 | 4317 | | |
4371 | 4318 | | |
4372 | 4319 | | |
4373 | | - | |
4374 | | - | |
4375 | | - | |
4376 | | - | |
4377 | | - | |
4378 | | - | |
| 4320 | + | |
| 4321 | + | |
| 4322 | + | |
| 4323 | + | |
| 4324 | + | |
| 4325 | + | |
4379 | 4326 | | |
4380 | 4327 | | |
4381 | 4328 | | |
| |||
0 commit comments