Files
git/Documentation
shejialuo e1c9548eae packed-backend: check whether the "packed-refs" is sorted
When there is a "sorted" trait in the header of the "packed-refs" file,
it means that each entry is sorted increasingly by comparing the
refname. We should add checks to verify whether the "packed-refs" is
sorted in this case.

Update the "packed_fsck_ref_header" to know whether there is a "sorted"
trail in the header. It may seem that we could record all refnames
during the parsing process and then compare later. However, this is not
a good design due to the following reasons:

1. Because we need to store the state across the whole checking
   lifetime, we would consume a lot of memory if there are many entries
   in the "packed-refs" file.
2. We cannot reuse the existing compare function "cmp_packed_ref_records"
   which cause repetition.

Because "cmp_packed_ref_records" needs an extra parameter "struct
snaphost", extract the common part into a new function
"cmp_packed_ref_records" to reuse this function to compare.

Then, create a new function "packed_fsck_ref_sorted" to parse the file
again and user the new fsck message "packedRefUnsorted(ERROR)" to report
to the user if the file is not sorted.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: shejialuo <shejialuo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-02-27 14:03:09 -08:00
..
2024-12-27 08:28:11 -08:00
2025-01-01 09:21:15 -08:00
2024-12-27 08:28:11 -08:00
2024-12-15 17:54:33 -08:00
2024-09-23 12:47:36 -07:00
2024-06-17 15:55:56 -07:00
2023-11-26 10:07:05 +09:00
2023-06-12 13:52:51 -07:00
2024-08-16 09:46:25 -07:00
2023-10-09 12:06:29 -07:00
2023-11-26 10:07:05 +09:00
2023-12-26 11:06:55 -08:00
2024-02-21 10:02:55 -08:00
2023-10-09 12:06:29 -07:00
2023-06-12 13:52:51 -07:00
2023-06-12 13:52:51 -07:00
2024-01-02 13:51:30 -08:00
2024-05-07 10:06:03 -07:00
2024-04-19 12:38:50 +02:00
2024-12-19 10:58:32 -08:00
2023-12-14 14:38:07 -08:00
2023-12-26 11:06:55 -08:00
2024-09-23 12:47:36 -07:00
2023-11-26 10:07:05 +09:00