Parsing manifests ¶

How does it work? ¶

Things happen in several stages.

Fetching the manifest repository ¶

This is done by  qisrc.sync.fetch_manifest  method.

We just add the manifest repository to the worktree, using

 qisrc.sync.clone_project  , then reset it to the branch the user asked us.

We then mark the project has being a manifest project, so that  qisrc sync  called later can now where to find the manifest XML file

Manifest XML parsing ¶

This is done by  qisrc.manifest.load  method.

We parse the XML in order to find every project, read what branch they need to track, what are there URLs, and whether or not they are under code review.

If we see them as being under code review, we call  qisrc.review.setup_project 

Once this is done, we call  worktree.set_project_review  so that  qisrc push  does not have to parse the manifest again to see whether or not the project is under code review.

If we see new projects, we add them to the worktree using  qisrc.sync.clone_project  and then call  worktree.set_git_project_config  so that  qisrc sync  does not have to parse the manifest again to get what is the remote branch we should synchronize with.