stribog home

Getting the sources

Since Feb 2008 the project sources are controlled with Git.

Git branches

As of 03 Mar 2008, stribog Git repository on savannah has the next branches

  1. master: no sources, meta-documentation of branches and release naming conventions
  2. pre2008-fixes: frozen at 03 Jan 2008 version, bugfixes only
  3. trunc: the active branch, the main task is migrating to the GNU standards on build system and options style (for host tools).

To get most recent documentation on these matters you should checkout the master branch and read it's files.

Using Git

Here are some instructions on how to get the project sources with their histories. There are three groups of commands. The first group will be useful both for the project members and anonymous persons. The second one is typically run by the anonymous only. The third group is concerned with modification the savannah public repository so this group will be probably invoked by the project members only.

Anonymous access

  1. $ git clone git://
    to make your local repository
  2. $ git checkout -b feb2008 origin/feb2008
    to make a local branch feb2008 based on fetched origin/feb2008
  3. $ git fetch
    to update copies of remote branches
  4. $ git pull
    to fetch all remote branches and merge one of them into your current branch

Common commands

  1. $ git checkout master
    to switch to existing branch 'master'
  2. $ git checkout -f master
    the same, through away local changes (and delete files removed from fetched repository since last sync)
  3. $git status
    to see what files are not in sync with the current branch
  4. $ git add new_file.c
    to add new_file.c to Git-controlled sources
  5. $ git diff
    to see what will be "git add"ed
  6. $git commit
    to move the changes to your current branch
  7. $ git branch
    to list the local repository branches
  8. $ git branch -r
    to list the public repositories branches
  9. $ git branch -d feb2008
    to delete a local branch feb2008
  10. $git show
    to see the latest commit description

Maintainer access

If you are a maintainer, your usual spells are (replace ineiev with your login name)

  1. $ git clone
    to get a new local repository
  2. $ git remote add savannah
    to add a reference for the public repository
  3. $ git push savannah feb2008
    to push into savannah local branch named 'feb2008' (non-existent will be created)
  4. $ git push savannah
    to push into savannah all local branches
  5. $ git push savannah :refs/heads/feb2008
    to remove branch feb2008 from remote savannah

Last modified: 11 Apr 2008

Copyright (C) 2008 Ineiev <>

Verbatim copying and distribution of this entire document is permitted in any medium, provided this notice is preserved.

You may also make and publish an unofficial translation of this document into any language including good English. In this case you should additionally provide a disclamer in the language, into wich you translate, clearly stating that it is not the original text of the author.