GIT Server

From AlsaProject
Revision as of 12:15, 16 May 2008 by Perex (Talk | contribs)

Jump to: navigation, search

Contents

ALSA repositories

Repositories

alsa-driver.git
contains compatibility and build code for 2.2, 2.4 and older 2.6 kernels
alsa-kernel.git
contains linux 2.6 kernel tree
alsa-kmirror.git
alsa kernel mirror tree for continuous development (contains ALSA parts from alsa-kernel.git tree)
alsa-lib.git
library
alsa-utils.git
utilities
alsa-firmware.git
firmware
alsa-tools.git
tools
alsa-plugins.git
plugins
alsa-oss.git
oss compatibility
alsa-python.git
official python binding

Anonymous access

Read only GIT server

git clone git://git.alsa-project.org/alsa-driver.git alsa-driver
git clone git://git.alsa-project.org/alsa-kernel.git alsa-kernel
git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror
git clone git://git.alsa-project.org/alsa-lib.git alsa-lib
git clone git://git.alsa-project.org/alsa-utils.git alsa-utils
git clone git://git.alsa-project.org/alsa-firmware.git alsa-firmware
git clone git://git.alsa-project.org/alsa-tools.git alsa-tools
git clone git://git.alsa-project.org/alsa-plugins.git alsa-plugins
git clone git://git.alsa-project.org/alsa-oss.git alsa-oss
git clone git://git.alsa-project.org/alsa-python.git alsa-python

Web interface

http://git.alsa-project.org/?p=alsa-driver.git
http://git.alsa-project.org/?p=alsa-kernel.git
http://git.alsa-project.org/?p=alsa-kmirror.git
http://git.alsa-project.org/?p=alsa-lib.git
http://git.alsa-project.org/?p=alsa-utils.git
http://git.alsa-project.org/?p=alsa-firmware.git
http://git.alsa-project.org/?p=alsa-tools.git
http://git.alsa-project.org/?p=alsa-plugins.git
http://git.alsa-project.org/?p=alsa-oss.git
http://git.alsa-project.org/?p=alsa-python.git

For developers - kernel drivers

Common rules

1) valid 'Signed-off-by:' line must be in the commit text

Rules for alsa-kernel.git

1) subject (first commit text line) must start with '[ALSA] '

Syncing

Note that 'master' branch in alsa-kernel.git is synced with alsa-kmirror.git 'master' branch automatically. So if you add a patch to alsa-kernel.git, it will be merged to alsa-kmirror.git (if no problem occurs) when you initiate 'git push' to the ALSA server.

Note that pushing to 'alsa-kmirror.git' should be only done if:

a) you fixing a sync problem
b) you are modifying a file which is out of sync (scripts directory or so)

In all other cases, only alsa-kernel.git repository should be used.

Common problems

PRE-RECEIVE repositories does not match, please, fix it
The alsa-kmirror.git#mastter and alsa-kernel.git#master sources does not match. You have to do manual changes in alsa-kmirror.git repository to sync trees. A diff between alsa-kmirror.git and alsa-kernel.git is printed to stderr, so you can analyze it and do appropriate steps.
PRE-RECEIVE Patch failed - is it already merged?
Appearently, you're trying to apply a patch which cannot be applied cleanly to alsa-kmirror.git#master. One reason might be that the patch is already applied, but the pre-receive script does not know about it. You may add commiter and commitdate to alsa-kmirror/scripts/git-ok-commits file to skip problematic commit (but only if you really verify, that this commit is already in the alsa-kmirror tree).

Clone repositories

git clone git@git.alsa-project.org:alsa-driver.git alsa-driver
git clone git@git.alsa-project.org:alsa-kernel.git alsa-kernel
git clone git@git.alsa-project.org:alsa-kmirror.git alsa-kmirror

To show all branches (includes remote ones):

git branch -a

To make a remote branch local:

git checkout -b for-linus origin/for-linus
git checkout -b linux-2.6 origin/linux-2.6

Update and rebase using Linus's 2.6 kernel tree

Add remote URL:

git remote add linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Checkout linux-2.6 branch:

git checkout linux-2.6

Pull Linus's 2.6 changes:

git pull linux-2.6 master

Rebase our main ALSA development master branch with linux-2.6:

git rebase linux-2.6 master

Push branch changes to ALSA GIT repository

git push --tags origin master:refs/head/master
git push --tags origin linux-2.6:refs/head/linux-2.6
git push --tags origin for-linus:refs/head/for-linus

Note: Especially after 'git rebase' the repository on server is not consistent with local repository (remote ref is not ancestor of the local ref for master branch), so you have to use --force parameter for 'git push' command. Note that this might be dangerous - we probably need to settle a locking mechanism to prevent inconsistent changes.

Branches

master
this branch is for main development (Andrew Morton will get patches for mm tree)
for-linus
this branch is for mainstream tree (for Linus Torvalds)
linux-2.6
this is official linux 2.6 mainstream tree
stable-2.6.<number>
patches for stable 2.6 kernels
private-*
all developers can create a private branch to test a particular set of patches, prefix for these branches is 'private-' (for example private-alsabug-1234, private-tiwai-vmaster etc.)

Tags

Private tags are not allowed. Only tags identifying ALSA version (alsa-kmirror.git and alsa-driver.git) or official linux kernel version (alsa-kernel.git) are allowed.

Maintenance

GIT server is maintaned by User:Perex.

Custom Search
Personal tools
Namespaces

Variants
Actions
Navigation
wiki
Toolbox