Roughly,
Initial
- create origin for that svn url
- svn checkout url@1 (anonymous checkout)
- iterate logs over revisions from start to HEAD
- checkout svn revision
- compute sha1 contents and directories and upper directory sha1
- create swh revision for that svn revision
- create occurrence targetting the last revision (with reference to svn one in metadata)
- send all data for storage in swh-storage.
Update
- check occurrence existence for the origin
- occurrence does not exist, deal same as Initial import and stop.
- Retrieve last seen svn revision
- Checkout that revision, compute that revision's swh revision checksum
- Compare those, if mismatch, stop since the history has been altered.
- Otherwise iterate over logs from svn revision to head, and compute checksums and send for storage (the same as previous step in initial import).