You are on page 1of 1

Sheet 2

Symbian and Mercurial: Publishing
MCL/RCL Repository Symbian Repository

Concepts
The Symbian package
Package owner – person responsible for evolution of the package repositories hold the “master”
Committer – approved by package owner to submit to the man- RCL_1 RCL_2 versions of the projects. This
is where the developers pull
aged codelines the package data from.
MCL/RCL REPO–managed codelines (restricted access)
FCL REPO – feature codelines (general access) MCL RC FCL

 The MCL.RCL version of the
BRANCH – follow a child from a revision repo contains the managed
NAMED BRANCH – branch created for a specific reason, e.g. a code lines. Only the pack-
FCL Repository age owner can push to this
new feature repository.
HEAD – latest revision of a branch
TIP – latest head on any branch (newest revision in repository) RCL_1 RCL_2 The FCL version of the
LOCAL TAG - stored in .hg/localtags file (not part of managed repo contains feature code
repo & not replicated). lines (as named branches).

Push
Everyone can push to this
GLOBAL TAG – stored in .hgtags (version controlled file in repo & MCL RC FCL repository.
replicated when repo cloned). Creating a global tag = new commit

If you have write access to the (updating a controlled file)
PATCH – set of mercurial commits that can be applied to another

Foundation repository P

• MCL/RCL – package owners and repository

PUSH
trusted contributors

PATCH
• FCL – all contributors

Check your current branch
Create a Patch Local Repository
The working directory is where
hg branch Output the difference between REV and its parents as a you do your own changes:


 .hg Mercurial
implement features, fix bugs,
Show changesets that will be Mercurial patch file 
 repository
refactor, experiment.
pushed hg export -g <REV> -o <file>
hg outgoing --rev REV DEST You store your own changes

COMMIT
Push a specific reversion to the To submit the patch to the package owner, attach the patch locally by committing them to
DEST repo file to the bugzilla item and set the bug to ‘proposed’. your local hg repository.
hg push --rev REV DEST 



 When you are ready you can
Working
publish your changes back to

Named Branches
directory
the foundation repository (see
sheet 2).

Show all branches in the repository
hg branches
Switch to a named branch
hg update <branch>

Tagging
Create a new named branch
hg update --rev <REV> Create local tag
hg branch <newbranch name> hg tag –l -r REV NAME...
hg ci -m “start new feature branch” Create a global tag
hg tag –m COMMIT_MESSAGE -r REV NAME...
Remove a tag
hg tag --remove tagname
Mercurial: www.selenic.com/mercurial/wiki List all the tags in a repository
hg tags -v
Symbian Foundation: developer.symbian.org