Confirmed users
142
edits
Line 1: | Line 1: | ||
= What is it? = | = What is it? = | ||
mapper is a | When we convert hg repositories to git, and vice versa, the hg changeset SHA (the 40 character hexadecimal string that you get when you commit a change) is different to the git commit id (the equivalent SHA used by git). | ||
In order to keep track of which hg changeset SHAs relate to which git commit SHAs, we keep a database of the mappings, together with details about the project the SHAs come from, and what time they were inserted into the database. | |||
The vcs sync tool (checked into mozharness) is the tool which performs the conversion between hg repos and git repos, and this is documented separately. It is responsible for performing the conversion - this is outside the scope of mapper. | |||
Mapper is a rest api, that allows: | |||
a) insertion of new mappings and projects (a "project" is essentially the name of the repo - e.g. build-tools) (HTTP POST) | |||
b) insertion of git/hg mappings for a given project (HTTP POST) | |||
c) retrieval of mappings for a given project (HTTP GET) | |||
Behind the scenes, it is reading/writing from the database (using sqlalchemy). | |||
Note: the vcs sync tool is a client of the mapper: it is vcs sync that inserts into mapper (i.e. uses the HTTP POST methods). | |||
The other clients of mapper will be: | |||
a) people / developers - wanting to query mappings | |||
b) b2g_build.py - the build script for b2g - since this needs to lookup shas in order to reference frozen commit versions in manifests | |||
Mapper is written as a RelEng API blueprint - please note RelEng API has its own documentation too. | |||
= Source = | = Source = |