For developers - kernel drivers

Common rules

1) be very very very carefull when you use '--force' for 'git push', you can broke whole repository, you should notify other developers on alsa-devel mailing list that you will do this change for 'master' branch

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

Rules for alsa-kernel.git

Rules for alsa-kprivate.git

No rules. Just do not overwrite branches created by someone else.

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. It's really required to see messages from the pre-receive script when something goes wrong. The script is trying to suggest what's going wrong and try to show you a problematic code (diff).

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.

The pre-receive script uses all four commit identifiers Author + AuthorDate + Commit + CommitDate to pair commits between alsa-kernel.git and alsa-kmirror.git. Use this information, if you like to add some commits manually to alsa-kmirror.git tree.

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).

Push branch changes to ALSA GIT repository

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 - please, ask Jaroslav Kysela < perex at perex . cz > if you can do this for branch 'master'.

Branches

master

this branch is for main development, managed by Jaroslav Kysela, it is rebased before ALSA releases

the contents is synced to alsa-kmirror.git

linux-next

this branch is for linux next testing tree (originaly maintaned by Andrew Morton), rebased

for-linus

this branch is for mainstream tree (for Linus Torvalds), just temporary branch

linux-2.6

this is official linux 2.6 mainstream tree

stable-2.6.<number>

patches for stable 2.6 kernels

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.