Page MenuHomeSoftware Heritage

Analyze svn externals repository ingestion with loader.svn v1.0
Closed, MigratedEdits Locked

Description

Let's analyze the result of the ingestion of subversion repositories with external definitions
submitted on staging two days ago.

First let's compute some statistics about the visit statuses of these repositories from the
save_origin_request table of the staging webapp database.

13:51 $ ssh anlambert@webapp.internal.staging.swh.network
Linux webapp 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jan 21 12:29:24 2022 from 192.168.101.11
anlambert@webapp:~$ django-admin dumpdata --settings=swh.web.settings.production > webapp.staging.db.json

anlambert@carnavalet:~$ scp anlambert@webapp.internal.staging.swh.network:webapp.staging.db.json .
anlambert@carnavalet:~$ cd ~/swh/swh-environment/swh-web
(swh) ✘-PIPE ~/swh/swh-environment/swh-web [master|⚑ 106] 
13:56 $ rm swh/web/settings/db.sqlite3
(swh) ✘-PIPE ~/swh/swh-environment/swh-web [master|⚑ 106] 
13:56 $ make run-migrations-dev 
python3 swh/web/manage.py migrate --settings=swh.web.settings.development -v0 2>/dev/null
(swh) ✔ ~/swh/swh-environment/swh-web [master|⚑ 106] 
13:57 $ django-admin loaddata --settings=swh.web.settings.development ~/webapp.staging.db.json

Once the copy of the webapp staging database done, we removed manually (using sqlitebrowser)
the lines in the save_origin_request that do not concern subversion with externals.

We can now compute the statistics about visit statuses.

(swh) ✔ ~/swh/swh-environment/swh-web [master|⚑ 106]
13:45 $ sqlite3 swh/web/settings/db.sqlite3 
SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
sqlite> select visit_status, count(*) from save_origin_request group by visit_status;
|241
created|4
failed|7
full|521
not_found|1
partial|117

So at the time of writing, on the 891 save code now requests for subversion repos with externals:

  • 241 have not been visited yet
  • 7 failed
  • 521 succeeds with a full repository loading
  • 117 succeeds with a partial repository loading

For the record, a partial repository loading can mean:

  • the reconstructed filesystem for the last loaded revision differs from the one obtained with a subversion export operation on that revision, that check is performed by the post_load hook of the subversion loader
  • svnrdump could not dump the whole repository (network issue for instance), only a partial set of revisions

So results are not bad so far but there is still some issues in the externals support implementation in the loader,
let's find them and fix them.

Related to T3864#77294

Event Timeline

ardumont triaged this task as Normal priority.Jan 20 2022, 11:48 AM
ardumont created this task.

Sentry issue: SWH-LOADER-SVN-2Y

Latest events on staging should be fixed by D7019.

Sentry issue: SWH-LOADER-SVN-4Z

This one is related to recursive checkout/export due to setting an external targeting the main repository URL (this is a known issue).

Look at this beauty:

(swh) anlambert@carnavalet:/tmp$ svn co https://svn.code.sf.net/p/applibres/svn applibres
A    applibres/Patrones
A    applibres/Patrones/.settings
A    applibres/Patrones/src
A    applibres/G1-AppLibres
A    applibres/G1-AppLibres/src
A    applibres/G1-AppLibres/.settings
A    applibres/Patrones/.classpath
A    applibres/Patrones/.project
A    applibres/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres/Patrones/src/ConexionMySQL.java
A    applibres/Patrones/src/ConexionPostgres.java
A    applibres/G1-AppLibres/src/Saludo.java
A    applibres/G1-AppLibres/.classpath
A    applibres/G1-AppLibres/.project
A    applibres/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs

Fetching external item into 'applibres/G1-AppLibres/svn':
A    applibres/G1-AppLibres/svn/Patrones
A    applibres/G1-AppLibres/svn/Patrones/.settings
A    applibres/G1-AppLibres/svn/Patrones/src
A    applibres/G1-AppLibres/svn/G1-AppLibres
A    applibres/G1-AppLibres/svn/G1-AppLibres/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/.settings
A    applibres/G1-AppLibres/svn/Patrones/.classpath
A    applibres/G1-AppLibres/svn/Patrones/.project
A    applibres/G1-AppLibres/svn/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres/G1-AppLibres/svn/Patrones/src/ConexionMySQL.java
A    applibres/G1-AppLibres/svn/Patrones/src/ConexionPostgres.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/src/Saludo.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs

Fetching external item into 'applibres/G1-AppLibres/svn/G1-AppLibres/svn':
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionMySQL.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionPostgres.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src/Saludo.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs

Fetching external item into 'applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn':
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionMySQL.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionPostgres.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src/Saludo.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs

Fetching external item into 'applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn':
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionMySQL.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionPostgres.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src/Saludo.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs

Fetching external item into 'applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn':
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionMySQL.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src/ConexionPostgres.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src/Saludo.java
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.classpath
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.project
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs

Fetching external item into 'applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn':
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/.settings
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/Patrones/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/src
A    applibres/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/svn/G1-AppLibres/.settings
^Csvn: E200015: Caught signal
svn: E200042: Additional errors:
svn: E200015: Caught signal

And indeed ...

(swh) anlambert@carnavalet:/tmp$ svn co --ignore-externals https://svn.code.sf.net/p/applibres/svn applibres-noext
A    applibres-noext/Patrones
A    applibres-noext/Patrones/.settings
A    applibres-noext/Patrones/src
A    applibres-noext/G1-AppLibres
A    applibres-noext/G1-AppLibres/src
A    applibres-noext/G1-AppLibres/.settings
A    applibres-noext/Patrones/.classpath
A    applibres-noext/Patrones/.project
A    applibres-noext/Patrones/.settings/org.eclipse.jdt.core.prefs
A    applibres-noext/Patrones/src/ConexionMySQL.java
A    applibres-noext/Patrones/src/ConexionPostgres.java
A    applibres-noext/G1-AppLibres/src/Saludo.java
A    applibres-noext/G1-AppLibres/.classpath
A    applibres-noext/G1-AppLibres/.project
A    applibres-noext/G1-AppLibres/.settings/org.eclipse.jdt.core.prefs
Checked out revision 9.
(swh) anlambert@carnavalet:/tmp$ cd applibres-noext/
(swh) anlambert@carnavalet:/tmp/applibres-noext$ svn propget svn:externals -R
G1-AppLibres - svn      https://svn.code.sf.net/p/applibres/svn

Not sure how to handle that properly yet.

All loading tasks submitted on staging last week got executed. Below are the results after updating the staging webapp database in my local environment:

(swh) ✔ ~/swh/swh-environment/swh-web [master|⚑ 106] 
11:10 $ sqlite3 swh/web/settings/db.sqlite3 
SQLite version 3.34.1 2021-01-20 14:10:07
Enter ".help" for usage hints.
sqlite> select visit_status, count(*) from save_origin_request group by visit_status;
failed|26
full|711
not_found|3
partial|153

So almost 80% of the tasks succeeded with a full loading which is not bad.

I analyzed the issues for the tasks with failed or partial status and fixed most of them.
It remains the edge case of recursive external definitions to handle (T3870#77491).
Incoming swh-loader-svn v1.1.0 should be able to fully load those repositories, which are:

sqlite> select origin_url from save_origin_request where visit_status = 'failed';
https://svn.code.sf.net/p/disy-commons/code
https://svn.code.sf.net/p/gate/code
https://svn.code.sf.net/p/ivs-ros-pkg/code
https://svn.code.sf.net/p/jvcl/code
https://svn.code.sf.net/p/lignedetemps/code
https://svn.code.sf.net/p/matplotlib/code
https://svn.code.sf.net/p/mediboard/code
https://svn.code.sf.net/p/restore/code
https://svn.code.sf.net/p/turbogears1/code
https://svn.code.sf.net/p/ubraa/code
https://svn.code.sf.net/p/ugmdatabase/svn
https://svn.code.sf.net/p/ui4w/code
https://svn.code.sf.net/p/umlmodeler/svncode
https://svn.code.sf.net/p/unixpiger/code
https://svn.code.sf.net/p/upsurge/code
https://svn.code.sf.net/p/urbanmediator/code
https://svn.code.sf.net/p/urt41banguid/svn
https://svn.code.sf.net/p/usboblivion/code
https://svn.code.sf.net/p/usvn/svn
https://svn.code.sf.net/p/w3af/code
https://svn.code.sf.net/p/whack-a-mole/code
https://svn.code.sf.net/p/wideimage/code
https://svn.code.sf.net/p/wikipad/code
https://svn.code.sf.net/p/wikiup/code
https://svn.code.sf.net/p/windsofscrum/code
https://svn.code.sf.net/p/wp-blog/svn
sqlite> select origin_url from save_origin_request where visit_status = 'partial';
https://svn.blender.org/svnroot/bf-translations/
https://svn.code.sf.net/p/aiadsocialnet/svn
https://svn.code.sf.net/p/aoia/code
https://svn.code.sf.net/p/apertium/svn
https://svn.code.sf.net/p/arp2/code
https://svn.code.sf.net/p/asicms/code
https://svn.code.sf.net/p/asunit/code
https://svn.code.sf.net/p/ats-lang/code
https://svn.code.sf.net/p/auber/code
https://svn.code.sf.net/p/axiomengine/svn
https://svn.code.sf.net/p/azsmrc/code
https://svn.code.sf.net/p/bibdesk/svn
https://svn.code.sf.net/p/bilder/code
https://svn.code.sf.net/p/bitpim/code
https://svn.code.sf.net/p/borgworx/code
https://svn.code.sf.net/p/boson/code
https://svn.code.sf.net/p/brlcad/code
https://svn.code.sf.net/p/bsml/code
https://svn.code.sf.net/p/bzflag/code
https://svn.code.sf.net/p/cesaachen/svn
https://svn.code.sf.net/p/charon-suite/code
https://svn.code.sf.net/p/chocolate-doom/code
https://svn.code.sf.net/p/coati-api/code
https://svn.code.sf.net/p/codeblocks/code
https://svn.code.sf.net/p/collada-dom/code
https://svn.code.sf.net/p/crackpot/code
https://svn.code.sf.net/p/crossfire/code
https://svn.code.sf.net/p/cs-battletrack/code
https://svn.code.sf.net/p/csipc2/code
https://svn.code.sf.net/p/cs-project/svn
https://svn.code.sf.net/p/czretouch/code
https://svn.code.sf.net/p/dafizilla/code
https://svn.code.sf.net/p/daimonin/code
https://svn.code.sf.net/p/delphiasiovst/code
https://svn.code.sf.net/p/dlvhex/code
https://svn.code.sf.net/p/docbook/code
https://svn.code.sf.net/p/dooble/code
https://svn.code.sf.net/p/doubleagent/code
https://svn.code.sf.net/p/doubleagent/code/
https://svn.code.sf.net/p/drdivx/code
https://svn.code.sf.net/p/dsao-md/code-code
https://svn.code.sf.net/p/emgucv/svn
https://svn.code.sf.net/p/epidoc/code
https://svn.code.sf.net/p/ergatis/code
https://svn.code.sf.net/p/exponent/code
https://svn.code.sf.net/p/eyeqhtml5/code
https://svn.code.sf.net/p/ffdshow-tryout/code
https://svn.code.sf.net/p/fireclipse/code
https://svn.code.sf.net/p/firemox/code
https://svn.code.sf.net/p/flightpred/code
https://svn.code.sf.net/p/flog/code
https://svn.code.sf.net/p/flylinkdc-client/code
https://svn.code.sf.net/p/foray/code
https://svn.code.sf.net/p/fredslibraries/esp-clibs
https://svn.code.sf.net/p/freeorion/code
https://svn.code.sf.net/p/funambol/code
https://svn.code.sf.net/p/gallery/code
https://svn.code.sf.net/p/garabagh/code-0
https://svn.code.sf.net/p/gar/code
https://svn.code.sf.net/p/geshi/code
https://svn.code.sf.net/p/getdata/code
https://svn.code.sf.net/p/gexperts/code
https://svn.code.sf.net/p/giews/code
https://svn.code.sf.net/p/graphsharp/code
https://svn.code.sf.net/p/helix/code
https://svn.code.sf.net/p/homefinance/code
https://svn.code.sf.net/p/htmlunit/code
https://svn.code.sf.net/p/ieatbrainz/code
https://svn.code.sf.net/p/itelex/code-0
https://svn.code.sf.net/p/jamwiki/svn
https://svn.code.sf.net/p/jedit/svn
https://svn.code.sf.net/p/jgerman/code
https://svn.code.sf.net/p/jsk-ros-pkg/code
https://svn.code.sf.net/p/jython/svn
https://svn.code.sf.net/p/kdenlive/svn
https://svn.code.sf.net/p/libpong/code
https://svn.code.sf.net/p/librestudio/code
https://svn.code.sf.net/p/lima-vva/code
https://svn.code.sf.net/p/lithron/code
https://svn.code.sf.net/p/loconetovertcp/svn
https://svn.code.sf.net/p/logilogi/code
https://svn.code.sf.net/p/lucifersstand/code
https://svn.code.sf.net/p/lw-framework/code
https://svn.code.sf.net/p/m2bee/code
https://svn.code.sf.net/p/madwifi/svn
https://svn.code.sf.net/p/magware/code
https://svn.code.sf.net/p/makingthings/code
https://svn.code.sf.net/p/manatee/code
https://svn.code.sf.net/p/marathon/code
https://svn.code.sf.net/p/marsyas/code
https://svn.code.sf.net/p/mclarobotics/code
https://svn.code.sf.net/p/mediainfo/code
https://svn.code.sf.net/p/meshlab/code
https://svn.code.sf.net/p/microhal/code-0
https://svn.code.sf.net/p/mingw-w64/code
https://svn.code.sf.net/p/misesquipulas/code
https://svn.code.sf.net/p/modelbuilder/code
https://svn.code.sf.net/p/moose/code
https://svn.code.sf.net/p/mplayerx-osx/code
https://svn.code.sf.net/p/mwclient/code
https://svn.code.sf.net/p/ndlb/code
https://svn.code.sf.net/p/nukeshtmlunit/code
https://svn.code.sf.net/p/obi/code
https://svn.code.sf.net/p/olympos/svn
https://svn.code.sf.net/p/oof/code
https://svn.code.sf.net/p/openautomation/code
https://svn.code.sf.net/p/openimscore/code
https://svn.code.sf.net/p/openrocket/code
https://svn.code.sf.net/p/pascalscada/code
https://svn.code.sf.net/p/pcpe/code
https://svn.code.sf.net/p/pencil-planner/code
https://svn.code.sf.net/p/perp/code
https://svn.code.sf.net/p/phpaxes/code
https://svn.code.sf.net/p/phpbbproject/svn
https://svn.code.sf.net/p/phphtmllib/svn
https://svn.code.sf.net/p/plonepm/code
https://svn.code.sf.net/p/pmml2svg/code
https://svn.code.sf.net/p/potassco/code
https://svn.code.sf.net/p/prism-api/code
https://svn.code.sf.net/p/projectorria/code
https://svn.code.sf.net/p/psycle/code
https://svn.code.sf.net/p/pure-data/svn
https://svn.code.sf.net/p/pywebsvcs/code
https://svn.code.sf.net/p/rand-mh/code
https://svn.code.sf.net/p/razorbacktm/code
https://svn.code.sf.net/p/roadnav/code
https://svn.code.sf.net/p/ruby-gnome2/code
https://svn.code.sf.net/p/sashimi/code
https://svn.code.sf.net/p/seabassshowdown/code
https://svn.code.sf.net/p/shareaza/code
https://svn.code.sf.net/p/silex/code
https://svn.code.sf.net/p/simplectest/code
https://svn.code.sf.net/p/skanner3d/svn
https://svn.code.sf.net/p/smartweb/code
https://svn.code.sf.net/p/stemkit/code
https://svn.code.sf.net/p/strawhat/tango-ds
https://svn.code.sf.net/p/sugarcadesnake/code
https://svn.code.sf.net/p/sumo/code
https://svn.code.sf.net/p/svnbook/source
https://svn.code.sf.net/p/svnbook-zh/svn
https://svn.code.sf.net/p/texstudio/code
https://svn.code.sf.net/p/tigefa4u/trac
https://svn.code.sf.net/p/tikiwiki/code
https://svn.code.sf.net/p/tora/code
https://svn.code.sf.net/p/tortoisesvn/code
https://svn.code.sf.net/p/trinlibr/code
https://svn.code.sf.net/p/virtualslight/code
https://svn.code.sf.net/p/wesnoth-umc-dev/code
https://svn.code.sf.net/p/xreal/svn
https://svn.code.sf.net/p/xvidcap/code
https://svn.code.sf.net/p/xvrstudio/code
http://svn.code.sf.net/p/tortoisesvn/code/trunk
http://svn.osdn.net/svnroot/tortoisesvn/

These origins will be resubmitted to staging save code now once the new version of the loader deployed.

swh-loader-svn v1.1.0 has been released, new tests have been scheduled on staging (T3875#77706).