HomeSoftware Heritage

Use versioned ExtIDs in main loader mercurial implementation

Description

Use versioned ExtIDs in main loader mercurial implementation

For now this hardcodes the version to 1 for either reading or writing instructions.

This allows:

  • store the new hashes with a version (actually no version means version 0).
  • to keep the old loader mercurial ExtID references in the archives (no need to clean them up as that poses other problems regarding the journal)
  • in effect unblock the current ingestion/updates of existing origins which already have more than one ExtIDs due to different incompatible versions.

The storage implementation does not allow filtering on the extid_version so it's up to
the loader to do the filtering. Hence the current implementation.