GIT Server

From AlsaProject
Revision as of 11:38, 25 September 2012 by Perex (Talk | contribs)

Jump to: navigation, search

Contents

ALSA Repositories

alsa-driver.git
contains compatibility and build code for older 2.6 kernels with mirrored latest kernel code
alsa-kernel.git
contains linux 2.6 kernel tree
alsa-kprivate.git
contains linux 2.6 kernel tree - for private branches for alsa developers
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
alsa-ucm-conf.git
ALSA Use-Case-Manager configuration library
tinycompress.git
Compressed formats support library
alsa.git
ALSA service repo (misc files)
alsa-driver.nomirror.git
old ALSA driver repository without the mirrored kernel code
alsa-kmirror.git
alsa kernel mirror tree for continuous development (contains ALSA parts from alsa-kernel.git tree)

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-kprivate.git alsa-kprivate
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
git clone git://git.alsa-project.org/alsa-ucm-conf.git alsa-ucm-conf
git clone git://git.alsa-project.org/tinycompress.git tinycompress
git clone git://git.alsa-project.org/alsa.git alsa
git clone git://git.alsa-project.org/alsa-driver.nomirror.git alsa
git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror

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-kprivate.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
http://git.alsa-project.org/?p=alsa-ucm-conf.git
http://git.alsa-project.org/?p=tinycompress.git
http://git.alsa-project.org/?p=alsa.git
http://git.alsa-project.org/?p=alsa-driver.nomirror.git
http://git.alsa-project.org/?p=alsa-kmirror.git

HTTP access

http://git.alsa-project.org/http/alsa-driver.git
http://git.alsa-project.org/http/alsa-kernel.git
http://git.alsa-project.org/http/alsa-kprivate.git
http://git.alsa-project.org/http/alsa-lib.git
http://git.alsa-project.org/http/alsa-utils.git
http://git.alsa-project.org/http/alsa-firmware.git
http://git.alsa-project.org/http/alsa-tools.git
http://git.alsa-project.org/http/alsa-plugins.git
http://git.alsa-project.org/http/alsa-oss.git
http://git.alsa-project.org/http/alsa-python.git
http://git.alsa-project.org/http/alsa-ucm-conf.git
http://git.alsa-project.org/http/tinycompress.git
http://git.alsa-project.org/http/alsa.git
http://git.alsa-project.org/http/alsa-driver.nomirror.git
http://git.alsa-project.org/http/alsa-kmirror.git

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 and the mirror branch in alsa-driver.git

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

Rules for alsa-kprivate.git

No rules. Just do not overwrite branches created by someone else. The 'master' branch is equal to linux-2.6 official tree from git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git (do sync if necessary):

 git remote add linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
 git checkout master
 git pull linux-2.6 master
 git push --tags origin master:refs/heads/master

Syncing the branch release in alsa-driver.git

 Please, use --log for the git merge command to show the "subject" of commits.
 It might be handy to define these git aliases in your .git/config file:
 [alias]
       bmerge = !git checkout release && git merge --log build
       mmerge = !git checkout release && git merge --log mirror

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

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/heads/master
git push --tags origin linux-2.6:refs/heads/linux-2.6
git push --tags origin for-linus:refs/heads/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 - 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 branches identifying ALSA version (alsa-driver.git) or official linux kernel version (alsa-kernel.git) are allowed.

Maintenance

GIT server is maintaned by User:Perex.

Occasional Developers

This section is for developers without write access to ALSA git. i.e., who will clone repos and send in patches

clone the repository

git clone git://git.alsa-project.org/alsa-driver.git alsa-driver 

if you live behind a firewall that blocks the git protocol, you can do this instead:

git clone http://git.alsa-project.org/http/alsa-driver.git alsa-driver 

if you like do only changes in code in alsa-kmirror, please, use alsa-kernel repository

git clone git://git.alsa-project.org/alsa-kernel.git alsa-kernel

but we accept patches in both forms

configure git

Set your email address correctly otherwise commits get spurious email address for Author and Commiter

git config --add user.email me@domain.com

Make sure it knows how to send email (for patches)

git config --add sendemail.smtpserver smtp.domain.com

save current

in case you want to roll back

git branch save

do your work

edit, compile, test, sweat

If it didn't work out and you want to get back to the old tree

git reset --hard save

generate patches

Want to get patch against latest, so rebase

git rebase origin/master
git diff remotes/origin/master

Then do this to generate the patchset

git format-patch -s -n -p --subject-prefix="PATCH - my module" remotes/origin/master

check the patches

/lib/modules/`uname -r`/build/scripts/checkpatch.pl --no-tree *.patch

sending the patches

git send-email --from=me --to=patch@alsa-project.org --cc=alsa-devel@alsa-project.org  000*.patch

get up to date

For both alsa-kmirror and alsa-driver

git pull

Sometimes you can just make and things will be fine. However, when there have been changes to the build system etc, its best to do a make clean; ./gitcompile to get the tree properly up to date.

Custom Search
Personal tools
Namespaces

Variants
Actions
Navigation
wiki
Toolbox