Git

Source Code Repository

Telepathy uses git.

You can browse the source code via the Telepathy gitweb. That site's "summary" links also list the URLs for both anonymous access (git://) and developer access (git+ssh://) for individual modules.

Contents

  1. Source Code Repository
    1. Checking out the source code
    2. Help for git beginners
    3. Working on an existing git repository
    4. Seting up a shared git repository

Checking out the source code

If you want bleeding-edge code, (or if you want to help out with development of Telepathy), you can check out the source code from git. Of course, you might prefer to use our Source Code Tarballs.

Anybody can checkout the latest source code anonymously with a command such as the following:

git clone git://git.collabora.co.uk/git/telepathy-glib.git

You can commit changes to your local repository but will not be able to push them to the central repository.

If you are a developer with an account (if your ssh key has been added) and would like to be able to push your changes to the central repository, you should use a command such as the following to checkout the latest source code:

git clone git+ssh://git.collabora.co.uk/git/telepathy-glib.git

Help for git beginners

If you are not familiar with git, these links might be useful.

* See "Using Git" on the cairomm page.

Working on an existing git repository

This is smcv's recommended workflow, to avoid accidentally pushing unreviewed changes to the main repository! Replace telepathy-glib with the project name and foo with your username.

# create your personal repository on dhansak
foo@dhansak:~$ mkdir -p ~/public_html/git
foo@dhansak:~$ cd ~/public_html/git
foo@dhansak:~/public_html/git$ git clone --bare /srv/git.collabora.co.uk/git/telepathy-glib.git telepathy-glib-foo.git

# check out a copy on your laptop
foo@laptop:~/src$ git clone git+ssh://git.collabora.co.uk/home/foo/public_html/git/telepathy-glib-foo.git telepathy-glib
foo@laptop:~/src$ cd telepathy-glib
foo@laptop:~/src/telepathy-glib$ git remote add upstream git+ssh://git.collabora.co.uk/git/telepathy-glib.git
# if you are interested in unreviewed code published by other users, e.g. smcv:
foo@laptop:~/src/telepathy-glib$ git remote add smcv git+ssh://git.collabora.co.uk/git/user/smcv/telepathy-glib-smcv.git
foo@laptop:~/src/telepathy-glib$ git remote update

# do some work on a new branch, and publish it
foo@laptop:~/src/telepathy-glib$ git checkout -b bug-12345 master
foo@laptop:~/src/telepathy-glib$ vim something.c
foo@laptop:~/src/telepathy-glib$ make check
foo@laptop:~/src/telepathy-glib$ git commit -a
foo@laptop:~/src/telepathy-glib$ git push --all

# (for committers only) once your code is reviewed, merge it
foo@laptop:~/src/telepathy-glib$ git checkout master
foo@laptop:~/src/telepathy-glib$ git remote update upstream
foo@laptop:~/src/telepathy-glib$ git merge upstream/master
foo@laptop:~/src/telepathy-glib$ git merge bug-12345
foo@laptop:~/src/telepathy-glib$ git push upstream master:master

# (for committers only) review and merge someone else's code (e.g. smcv's bug-54321 branch)
foo@laptop:~/src/telepathy-glib$ git remote update smcv
foo@laptop:~/src/telepathy-glib$ gitk    # and look at changes in refs/remotes/smcv/bug-54321
foo@laptop:~/src/telepathy-glib$ git checkout master
foo@laptop:~/src/telepathy-glib$ git remote update upstream
foo@laptop:~/src/telepathy-glib$ git merge upstream/master
foo@laptop:~/src/telepathy-glib$ git merge smcv/bug-54321
foo@laptop:~/src/telepathy-glib$ git push upstream master:master

Seting up a shared git repository

    [hooks]
            mailinglist = telepathy-commits@lists.freedesktop.org