Cadmium

From Genunix

Jump to: navigation, search

This page is for general notes about Cadmium, which is the Mercurial extension that the SCM Migration project has created to support ON and other groups using the onbld toolset. Anything that would be better expressed in code comments should go there, rather than here.

Terminology

The changesets in a Mercurial repository form a directed graph. And because some Cadmium operations involve both a parent and child workspace, things can get confusing without clear terms and a picture or two.

Let's start with a workspace that has been freshly cloned from the gate. It's a straight sequence of changesets, with just the default branch. The last changeset of the branch is the head. Because it's the newest head in the repository, it's also the tip. If you did a simple clone, you'll also get the plain text tree associated with the head; this is called the working directory. This is all standard Mercurial terminology so far.

Image:cdm-initial-pull.jpg

Now let's assume you've made some changes, merged with the gate once, and made some more changes. Sometime after your merge, new changes were added to the gate.

The local tip is the tip in your repository. More precisely, if your repository has multiple branches, it is the tip of the current branch. If your working directory as uncommitted changes, then the uncommitted changes are considered to be the local tip.

The parent tip is the most recent changeset that is common to your repository and the gate. (Again, if your repository has multiple branches, this is just looking at the current branch.)

Image:cdm-before-reci.jpg

Personal tools