Re: Bug in SVN.pm
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 12, 2023, 01:43 UTC
- Message-ID
- <xmqqo7ewtcu8.fsf@gitster.g>
- In-Reply-To
- <DS7PR13MB46861D9FF40E2A340FD2C8D2CF8FA@DS7PR13MB4686.namprd13.prod.outlook.com>
Daniel Ducharme <dducharme@catalisgov.com> writes:
Show 11 quoted lines
> sub parse_svn_date requires both the month, day, hour, and minute
> to be 2 digits long and fails on 2007-3-12T17:46:4.000000Z as an
> example due to the regex. Suggestion is to make the regex instead
> /^(\d{4})\-(\d\d?)\-(\d\d?)T (\d\d?)\:(\d\d?)\:(\d\d?)\.\d*Z$/x)
>
> I have found this data to be present in a SVN repository converted
> off of VSS while trying to take some old VSS repos to git through
> SVN, not sure if standard SVN would have allowed these date
> patterns, but they should be valid. The above regex also contains
> a fix for single digit minute and second as I also ran into that
> as well.I do not think it is fair to call this a bug in SVN.pm, provided if SVN wants to use ISO 8601 datetime format for its timestamps. ISO 8601, IIUC, is fairly clear that month and day must be two-digit strings, 0-filled to the left as needed, and I would not be surprised if standard SVN rejected such bogus dates, and I do not agree with your "they *SHOULD* be valid" statement.
Having said all that, it is good to be liberal in what we accept, and I am sympathetic to "it would be nicer if they were accepted" sentiment. As long as there is no ambiguity, I would say that it would be nicer if timestamps like "2007-3-12T17:1:2.0Z" were accepted, and I would not be fundamentally opposed to a patch that loosens the regex to do so.
Patches welcome ;-).