Repository navigation
Commit e80df68
committed
fix(spec): do not read a shallow checkout as a forged anchor baseRev (#5235)
First CI run on this branch failed every job: `merge-base --is-ancestor` answers
"not an ancestor" in a depth-1 checkout, because the anchor's commit is fetched
as its own shallow root and there is no history to walk between it and the tip.
The ancestry half of the anchor verification therefore rejected a baseRev that
demonstrably IS on main, exactly the way the merge-base fallback a few lines
above already anticipates for the baseline itself.
Ancestry is now judged only where it can be: `rev-parse --is-shallow-repository`
gates it, and a shallow run says so and verifies the recorded KEYS alone — the
half truncation cannot take away, since the fetched commit's tree is present.
A full clone (every dev checkout — where the anchor is regenerated, and where a
hand-edit is therefore caught) still checks both.
Two tests pin it, using `$GIT_DIR/shallow` to truncate the sandbox repo exactly
as `--depth=1` does: a lagging-but-authentic anchor stays green, and a shed line
still goes red there.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ErbEDVAg1No9gdg1pgDAGB1 parent d5742b2 commit e80df68
2 files changed
Lines changed: 71 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
729 | 729 | | |
730 | 730 | | |
731 | 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 | + | |
732 | 784 | | |
733 | 785 | | |
734 | 786 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
860 | 860 | | |
861 | 861 | | |
862 | 862 | | |
863 | | - | |
864 | | - | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
865 | 867 | | |
866 | 868 | | |
867 | 869 | | |
868 | | - | |
869 | | - | |
870 | | - | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
871 | 873 | | |
872 | 874 | | |
873 | 875 | | |
| |||
904 | 906 | | |
905 | 907 | | |
906 | 908 | | |
907 | | - | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
908 | 921 | | |
909 | 922 | | |
910 | 923 | | |
| |||
0 commit comments