BTW this is just a request for comments, not a finished patch.
(mergeinfo_tests.py 2 fails and I have not yet investigated.)

- Julian


I (Julian Foad) wrote:
> Hi Paul.
> 
> I think we can tighten the validation of svn_merge_range_t to exclude
> change number "r0" (RANGE->start == -1) as in the following patch.
> 
> My reasoning is that a change numbered "r0" is not a valid concept in
> any Subversion system because the state (tree-snapshot) numbered r0 is
> by definition the beginning.  (It also happens to be empty by
> definition, but that's not so relevant.)  We can say the same in a
> different way: change "r0" would mean the change from "r(-1)" to "r0",
> and "r(-1)" is not a valid concept.
> 
> Makes sense?
> 
> [[[
> Tighten merge-range validation to not allow "change number r0" aka "revision
> range -1:Y".
> 
> * subversion/libsvn_subr/mergeinfo.c
>   (IS_VALID_FORWARD_RANGE): New macro.
>   (get_type_of_intersection): Use IS_VALID_FORWARD_RANGE() for tighter
>     validation of arguments than before: it previously accepted "change 0".
>   (range_intersect, range_contains): Validate arguments. Add doc strings.
> 
> * subversion/tests/libsvn_subr/mergeinfo-test.c
>   (randomly_fill_rev_array, rev_array_to_rangelist): Expand doc strings.
>   (test_rangelist_remove_randomly, test_rangelist_intersect_randomly): Don't
>     ever include change number r0 in a merge range.
> --This line, and those below, will be ignored--
[...]


Reply via email to