Difference between revisions of "GIT Server"
(→Branches) |
(→Syncing the branch release in alsa-driver.git) |
||
(31 intermediate revisions by 5 users not shown) | |||
Line 6: | Line 6: | ||
; alsa-driver.git | ; alsa-driver.git | ||
− | : contains compatibility and build code for | + | : contains compatibility and build code for older 2.6 kernels with mirrored latest kernel code |
; alsa-kernel.git | ; alsa-kernel.git | ||
: contains linux 2.6 kernel tree | : contains linux 2.6 kernel tree | ||
− | ; alsa- | + | |
− | : | + | ; alsa-kprivate.git |
+ | : contains linux 2.6 kernel tree - for private branches for alsa developers | ||
; alsa-lib.git | ; alsa-lib.git | ||
: library | : library | ||
− | ; alsa-utils.git | + | ; alsa-utils.git; |
: utilities | : utilities | ||
; alsa-firmware.git | ; alsa-firmware.git | ||
Line 26: | Line 27: | ||
; alsa-python.git | ; alsa-python.git | ||
: official python binding | : official python binding | ||
+ | ; alsa-ucm-conf.git | ||
+ | : ALSA Use-Case-Manager configuration library | ||
+ | ; tinycompress.git | ||
+ | : Compressed formats support library | ||
; alsa.git | ; alsa.git | ||
: ALSA service repo (misc files) | : 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== | ==Anonymous access== | ||
Line 36: | Line 46: | ||
: git clone git://git.alsa-project.org/alsa-driver.git alsa-driver | : 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-kernel.git alsa-kernel | ||
− | : git clone git://git.alsa-project.org/alsa- | + | |
+ | : 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-lib.git alsa-lib | ||
Line 45: | Line 56: | ||
: git clone git://git.alsa-project.org/alsa-oss.git alsa-oss | : 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-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.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=== | ===Web interface=== | ||
Line 52: | Line 68: | ||
: http://git.alsa-project.org/?p=alsa-driver.git | : 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-kernel.git | ||
− | : http://git.alsa-project.org/?p=alsa- | + | |
+ | : 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-lib.git | ||
Line 61: | Line 78: | ||
: http://git.alsa-project.org/?p=alsa-oss.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-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.git | ||
+ | |||
+ | : http://git.alsa-project.org/?p=alsa-driver.nomirror.git | ||
+ | : http://git.alsa-project.org/?p=alsa-kmirror.git | ||
===HTTP access=== | ===HTTP access=== | ||
Line 68: | Line 90: | ||
: http://git.alsa-project.org/http/alsa-driver.git | : 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-kernel.git | ||
− | : http://git.alsa-project.org/http/alsa- | + | |
+ | : 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-lib.git | ||
Line 77: | Line 100: | ||
: http://git.alsa-project.org/http/alsa-oss.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-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.git | ||
+ | |||
+ | : http://git.alsa-project.org/http/alsa-driver.nomirror.git | ||
+ | : http://git.alsa-project.org/http/alsa-kmirror.git | ||
==For developers - kernel drivers== | ==For developers - kernel drivers== | ||
Line 87: | Line 115: | ||
: 2) valid 'Signed-off-by:' line must be in the commit text | : 2) valid 'Signed-off-by:' line must be in the commit text | ||
− | ===Rules for alsa-kernel.git=== | + | ===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: ' | : 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 | ||
− | === | + | ===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] | |
− | + | apull = !git checkout release && git pull origin release && \ | |
+ | git checkout build && git pull origin build && \ | ||
+ | git checkout mirror && git pull origin mirror && \ | ||
+ | git checkout release | ||
+ | apush = !git push --tags origin release && git push origin build && \ | ||
+ | git push origin mirror | ||
+ | bmerge = !git checkout release && git merge --log build | ||
+ | mmerge = !git checkout release && git merge --log mirror | ||
===Clone repositories=== | ===Clone repositories=== | ||
git clone git@git.alsa-project.org:alsa-driver.git alsa-driver | git clone git@git.alsa-project.org:alsa-driver.git alsa-driver | ||
+ | cd alsa-driver | ||
+ | git branch build remotes/origin/build | ||
+ | git branch mirror remotes/origin/mirror | ||
+ | git branch release remotes/origin/release | ||
+ | |||
git clone git@git.alsa-project.org:alsa-kernel.git alsa-kernel | git clone git@git.alsa-project.org:alsa-kernel.git alsa-kernel | ||
− | |||
To show all branches (includes remote ones): | To show all branches (includes remote ones): | ||
Line 124: | Line 160: | ||
To make a remote branch local: | To make a remote branch local: | ||
− | git checkout -b for-linus origin/for-linus | + | git checkout -b for-linus remotes/origin/for-linus |
− | git checkout -b linux-2.6 origin/linux-2.6 | + | git checkout -b linux-2.6 remotes/origin/linux-2.6 |
===Update and rebase using Linus's 2.6 kernel tree=== | ===Update and rebase using Linus's 2.6 kernel tree=== | ||
Line 147: | Line 183: | ||
===Push branch changes to ALSA GIT repository=== | ===Push branch changes to ALSA GIT repository=== | ||
− | git push --tags origin | + | git push --tags origin master |
− | git push --tags origin | + | git push --tags origin linux-2.6 |
− | git push --tags origin | + | git push --tags origin 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'. | 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'. | ||
Line 159: | Line 195: | ||
: the contents is synced to alsa-kmirror.git | : 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 | ; for-linus | ||
Line 173: | Line 209: | ||
===Tags=== | ===Tags=== | ||
− | Private tags are not allowed. Only | + | Private tags are not allowed. Only branches identifying ALSA version (alsa-driver.git) or official linux kernel version (alsa-kernel.git) are allowed. |
===Maintenance=== | ===Maintenance=== | ||
Line 180: | Line 216: | ||
==Occasional Developers== | ==Occasional Developers== | ||
− | This section is for developers without write access to ALSA git. | + | This section is for developers without write access to ALSA git. i.e., who will clone repos and send in patches |
===clone the repository=== | ===clone the repository=== | ||
git clone git://git.alsa-project.org/alsa-driver.git alsa-driver | 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 | ||
+ | |||
+ | Create local branches: | ||
+ | |||
+ | cd alsa-driver | ||
+ | git branch build remotes/origin/build | ||
+ | git branch mirror remotes/origin/mirror | ||
+ | git branch release remotes/origin/release | ||
+ | |||
+ | Note: You may do changes directly in the Linus's kernel GIT tree and send the patches from it. | ||
===configure git=== | ===configure git=== | ||
Set your email address correctly otherwise commits get spurious email address for Author and Commiter | Set your email address correctly otherwise commits get spurious email address for Author and Commiter | ||
− | git | + | git config --add user.email me@domain.com |
Make sure it knows how to send email (for patches) | Make sure it knows how to send email (for patches) | ||
− | git | + | git config --add sendemail.smtpserver smtp.domain.com |
===save current=== | ===save current=== | ||
in case you want to roll back | in case you want to roll back | ||
− | git | + | git branch save |
===do your work=== | ===do your work=== | ||
Line 202: | Line 249: | ||
If it didn't work out and you want to get back to the old tree | If it didn't work out and you want to get back to the old tree | ||
− | git | + | git reset --hard save |
===generate patches=== | ===generate patches=== | ||
Want to get patch against latest, so rebase | Want to get patch against latest, so rebase | ||
− | git | + | git rebase origin/master |
− | git | + | git diff remotes/origin/master |
Then do this to generate the patchset | Then do this to generate the patchset | ||
− | git | + | git format-patch -s -n -p --subject-prefix="PATCH - my module" remotes/origin/master |
===check the patches=== | ===check the patches=== | ||
Line 217: | Line 264: | ||
===sending the patches=== | ===sending the patches=== | ||
− | git | + | git send-email --from=me --to=patch@alsa-project.org --cc=alsa-devel@alsa-project.org 000*.patch |
− | 000*.patch | + | |
===get up to date=== | ===get up to date=== | ||
− | + | ||
− | git | + | cd alsa-driver |
+ | git checkout build | ||
+ | git pull origin build | ||
+ | git checkout mirror | ||
+ | git pull origin mirror | ||
+ | git checkout release | ||
+ | git pull origin release | ||
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. | 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. | ||
[[Category:Development]] | [[Category:Development]] |
Revision as of 17:37, 17 December 2012
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-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-driver.nomirror.git
- http://git.alsa-project.org/?p=alsa-kmirror.git
HTTP access
- 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-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
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] apull = !git checkout release && git pull origin release && \ git checkout build && git pull origin build && \ git checkout mirror && git pull origin mirror && \ git checkout release apush = !git push --tags origin release && git push origin build && \ git push origin mirror 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 cd alsa-driver git branch build remotes/origin/build git branch mirror remotes/origin/mirror git branch release remotes/origin/release
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 remotes/origin/for-linus git checkout -b linux-2.6 remotes/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 git push --tags origin linux-2.6 git push --tags origin 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
Create local branches:
cd alsa-driver git branch build remotes/origin/build git branch mirror remotes/origin/mirror git branch release remotes/origin/release
Note: You may do changes directly in the Linus's kernel GIT tree and send the patches from it.
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
cd alsa-driver git checkout build git pull origin build git checkout mirror git pull origin mirror git checkout release git pull origin release
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.
