Commit e855acc
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 e855acc
6 files changed
Lines changed: 501 additions & 141 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 | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
111 | 112 | | |
112 | 113 | | |
113 | 114 | | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
114 | 123 | | |
115 | 124 | | |
116 | 125 | | |
117 | 126 | | |
118 | | - | |
119 | | - | |
120 | | - | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
121 | 137 | | |
122 | 138 | | |
123 | 139 | | |
| |||
208 | 224 | | |
209 | 225 | | |
210 | 226 | | |
211 | | - | |
212 | | - | |
213 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
214 | 236 | | |
215 | 237 | | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
220 | 244 | | |
221 | 245 | | |
222 | 246 | | |
| |||
796 | 820 | | |
797 | 821 | | |
798 | 822 | | |
799 | | - | |
| 823 | + | |
| 824 | + | |
800 | 825 | | |
801 | | - | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
802 | 830 | | |
| 831 | + | |
| 832 | + | |
803 | 833 | | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
808 | 848 | | |
809 | 849 | | |
810 | | - | |
811 | | - | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
812 | 855 | | |
813 | 856 | | |
814 | 857 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
981 | 981 | | |
982 | 982 | | |
983 | 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 | + | |
984 | 1010 | | |
985 | 1011 | | |
986 | 1012 | | |
| |||
0 commit comments