Developer Public Repos

We use git in a distributed way. There is no central git repository. You can choose freely from who you want to fetch your sources from. The addresses are here:

The repository list above is sorted by our user name in alphabetical order.

We encourage interested developers to set up their own public repos cloning our project.

Contributors Public Repos

the following repositories are contributors repositories

Which Repo To Clone

If you only want to play, get a tarball, git is only required if you want to develop for the project.

It does not matter whose git developer repo you clone, they all should have (nearly) identical master branch, if you don't wanna get experimental work, fetch from the buildbot repository. The buildbot repository tracks and tags each working tarball release.

Getting Started

git-clone git://springlobby.info/git/buildbot/springlobby.git
cd springlobby

This creates a directory springlobby to your current directory, so make sure you don't have one already.

./autogen.sh

This generates the build system, and is only necessary after the initial clone. Tarball releases don't need this.
Note: gettext depends on cvs, therefore autogen will fail if you don't have cvs, gettext and automake installed on your system

Continue with configure & make

Getting Up To Date

git-pull

This fetches new changesets from where you originally cloned, and merges them to your master branch.

Continue with configure & make

Development with Git

Starting steps

Personal Informations

first of all, you'll have to enter your personal information which will be included in your commits, this can be done with:

git config --global user.name "Your Name Comes Here"
git config --global user.email you@yourdomain.example.com

Adding aliases for other repositories

adding an alias has the bonus of being able to use a short word in place of a long url which represents a repository:

git remote add bd git://springlobby.info/git/BrainDamage/springlobby.git
git remote add dizekat git://springlobby.info/git/dizekat/springlobby.git
git remote add koshi git://springlobby.info/git/koshi/springlobby.git
git remote add semi git://springlobby.info/git/semi/springlobby.git
git remote add kaot git://springlobby.info/git/Kaot/springlobby.git
git remote add tc git://springlobby.info/git/tc/springlobby.git
git remote add buildbot git://springlobby.info/git/buildbot/springlobby.git

Coloring the text output (optional)

having monochrom color for output can be boring, this can be changed with:

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Everyday work with git

Commit policies

The SpringLobby projects have the following policies about committing:

  • branches can either be stable or unstable, your master branch must always be stable
  • only stable branches can be merged in your master, and only trivial bugfixes can be committed directly to it
  • create a branch for every new ticket you're gonna work on
  • commit as much as you can then publish your work, as backup

GUI usage

Get started with the command:

git gui
Creating a Branch

Select the menu branch -> create, enter a name (without spaces)
select starting revision: local branch -> master
create

then you're ready to code

Committing to Branches

After you are finished with your changes, you might wanna commit to get them permanently stored. In order to achive this, first of all click on "Rescan", which will check for any code changes.

On the top right part of the GUI, you'll see a list of files in the column called "unstaged changes". Those are the new/changed/deleted files which won't be included in your commits.

Click on the icon of every file that you want to be included, or click on "stage changed" to have all changed files to be auto-included; all files which will be included will be placed on the left in the column "staged changes".

Write a small description about what you've done in the text area in the middle, then push "commit".

Checking out Branches

When you wanna extract the sources contained in a branch, all you have to do is go into the menu branch -> checkout

the option "local branches" will let you view only your own branches, the option "remote branches" will let you view the branches from other people you fetched from, select the branch you're interested in and push "checkout"

Merging Branches

When you're satisfied with your changes and want to include what you've done in another branch (very likely master), you'll have to follow the following steps:

First of all, [Checkout] the branch which is to receive the updated content. This destination branch must be a local branch.
Now select merge -> local merge
Again you'll be prompted for a choice to use a local branch or remote branch as the source. Choose the branch containing your changes and press "Merge".

Creating a patch file

select repository -> visualize all branch history

left click on the commit message which you're going to use as starting point, the text will become highlighted
right click on the commit message which you're using as destination point and select "Make patch"

Further reading