Ape Development

Ape development has moved from subversion to git.

If you have never used git, have a look at the section using git.

Git repositories for ape

The git repository does not contain any confidential information of the collaboration. It is exported as git://devel.auger.unam.mx/ape.git and can be cloned with the instruction

git clone git://devel.auger.unam.mx/ape.git

Access via ssh is explained in the section on development repositories.

You can review the history in the trac history browser or on the gitweb pages for ape.

Development repositories

Write access to the main ape repository is on the url ssh://git@devel.auger.unam.mx/ape. The master branch of this repository can only be extended, rebasing or other changes of the published history are forbidden on that branch.

Development on ape typically takes place in a clone of the repository. Once a feature is implemented, the relevant branch will be merged and published in the main repository. If you clone the ape repository, you are encouraged to notify the developers and to publish your clone. The preferred way to publish your clone is on the devel.auger.unam.mx site, but you can also host your clone yourself or on a free git hosting service like github or gitorious.

Main ape repository:
Clone from git://devel.auger.unam.mx/ape.git.
Lukas' development repository:
The url for cloning is git://devel.auger.unam.mx/ape/lukas.git. Browse here. Development typically happens on the dev branch, but other branches might be created for special features.

To look for other clones of the ape repository, browse the list of repositories on our the git server.

If you maintain a clone for active development, please add it to the list.

Using git

Git is available on all distributions of linux, from macports and as a source from the git page. Make sure you install version 1.6 or newer. There are significant improvements in the user interface.

To learn git, consult the git documentation and the git wiki. If you are a subversion user, you might want to have a look at the git-svn crash course and the introduction to git-svn for Subversion/SVK users and deserters.

Pushing to the master repository

Use git remote add pub git@devel.auger.unam.mx:ape to add the master repository to your clone. Add the push line to .git/config to push the master: branch.

[remote "pub"]
  url = git@devel.auger.unam.mx:ape
  fetch = +refs/heads/*:refs/remotes/pub/*
  push = master:master

This is not necessary if your repository is a clone of the master. It is probably called origin. If you cloned using the git server, you will have to add two lines to .git/config:

[remote "origin"]
  fetch = +refs/heads/*:refs/remotes/origin/*
  url = git://devel.auger.unam.mx/ape.git
  pushurl = git@devel.auger.unam.mx:ape
  push = master:master

Pushing to a personal clone repository

Use git remote add dev git@devel.auger.unam.mx:ape/my-clone to add the remote repository where you publish your clone. You have to add push lines to .git/config to push the branches you want to publish. Prefix the ref-spec for the branches you intend to rebase with +. See the git documentation for a detailed explanation on ref-specs and pushing to repositories.

[remote "dev"]
   url = git@devel.auger.unam.mx:ape/lukas
   fetch = +refs/heads/*:refs/remotes/dev/*
   push = master:master
   push = +dev:dev

The master branch can only be fast-forwarded. The dev branch can be rewritten, e.g., because it got rebased.

Improvements to this page

If you have suggestions on how to improve this page, please open a ticket. Try to be precise. A generic request like:

Please improve the page.

will probably not achieve anything and get discarded immediately.