harden against unexpected svn errors

Authored by sitter on May 5 2020, 1:29 PM.

Description

harden against unexpected svn errors

such as connection refusal from server due to it reaching its connection
cap.

this is a tad awkward because we don't have easy access to either the erors
nor the actual error code definitions since we want to avoid as many deps
as possible. so, as a cheap crutch we parse stderr iff svn exits !0 and
sift through all the E000 codes. codes always raise exceptions and must
be ignored or retried. we currently only ignore as per the original
behavior expectations of get/export/list.

the ultimate result of this is that all other errors will result in
exceptions and need to be dealt with one way or another.

to simplify all this a bit there's now an internal result class that
encapsulates parsing and also acts as a handier state object for the
specific run. otherwise we'd have to pass around 4 vars in at least 2
functions
the run now also sets C as LANG to ensure we get englishy strings
(hopefully anyway)

Details

Committed
sitterMay 5 2020, 1:52 PM
Parents
R572:ddcbadaba96d: 5.18.5
Branches
Unknown
Tags
Unknown