  <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.alsa-project.org/main/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benstanley</id>
	<title>AlsaProject - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.alsa-project.org/main/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benstanley"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/wiki/Special:Contributions/Benstanley"/>
	<updated>2026-04-10T09:32:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=GIT_Server&amp;diff=1649</id>
		<title>GIT Server</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=GIT_Server&amp;diff=1649"/>
		<updated>2008-07-03T21:27:30Z</updated>

		<summary type="html">&lt;p&gt;Benstanley: /* clone the repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==ALSA Repositories==&lt;br /&gt;
&lt;br /&gt;
; alsa-driver.git&lt;br /&gt;
: contains compatibility and build code for 2.2, 2.4 and older 2.6 kernels&lt;br /&gt;
; alsa-kernel.git&lt;br /&gt;
: contains linux 2.6 kernel tree&lt;br /&gt;
; alsa-kmirror.git&lt;br /&gt;
: alsa kernel mirror tree for continuous development (contains ALSA parts from alsa-kernel.git tree)&lt;br /&gt;
&lt;br /&gt;
; alsa-kprivate.git&lt;br /&gt;
: contains linux 2.6 kernel tree - for private branches for alsa developers&lt;br /&gt;
&lt;br /&gt;
; alsa-lib.git&lt;br /&gt;
: library&lt;br /&gt;
; alsa-utils.git;&lt;br /&gt;
: utilities&lt;br /&gt;
; alsa-firmware.git&lt;br /&gt;
: firmware&lt;br /&gt;
; alsa-tools.git&lt;br /&gt;
: tools&lt;br /&gt;
; alsa-plugins.git&lt;br /&gt;
: plugins&lt;br /&gt;
; alsa-oss.git&lt;br /&gt;
: oss compatibility&lt;br /&gt;
; alsa-python.git&lt;br /&gt;
: official python binding&lt;br /&gt;
&lt;br /&gt;
; alsa.git&lt;br /&gt;
: ALSA service repo (misc files)&lt;br /&gt;
&lt;br /&gt;
==Anonymous access==&lt;br /&gt;
&lt;br /&gt;
===Read only GIT server===&lt;br /&gt;
&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-driver.git alsa-driver&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-kernel.git alsa-kernel&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror&lt;br /&gt;
&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-kprivate.git alsa-kprivate&lt;br /&gt;
&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-lib.git alsa-lib&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-utils.git alsa-utils&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-firmware.git alsa-firmware&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-tools.git alsa-tools&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-plugins.git alsa-plugins&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-oss.git alsa-oss&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa-python.git alsa-python&lt;br /&gt;
&lt;br /&gt;
: git clone git://git.alsa-project.org/alsa.git alsa&lt;br /&gt;
&lt;br /&gt;
===Web interface===&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-driver.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-kernel.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-kmirror.git&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-kprivate.git&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-lib.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-utils.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-firmware.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-tools.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-plugins.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-oss.git&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa-python.git&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/?p=alsa.git&lt;br /&gt;
&lt;br /&gt;
===HTTP access===&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-driver.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-kernel.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-kmirror.git&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-kprivate.git&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-lib.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-utils.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-firmware.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-tools.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-plugins.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-oss.git&lt;br /&gt;
: http://git.alsa-project.org/http/alsa-python.git&lt;br /&gt;
&lt;br /&gt;
: http://git.alsa-project.org/http/alsa.git&lt;br /&gt;
&lt;br /&gt;
==For developers - kernel drivers==&lt;br /&gt;
&lt;br /&gt;
===Common rules===&lt;br /&gt;
&lt;br /&gt;
: 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&lt;br /&gt;
: 2) valid 'Signed-off-by:' line must be in the commit text&lt;br /&gt;
&lt;br /&gt;
===Rules for alsa-kernel.git===&lt;br /&gt;
&lt;br /&gt;
: 1) subject (first commit text line) must start with '[ALSA] ' or 'ALSA: ' or '[sound] ' or 'sound: '&lt;br /&gt;
&lt;br /&gt;
===Rules for alsa-kprivate.git===&lt;br /&gt;
&lt;br /&gt;
No rules. Just do not overwrite branches created by someone else. The 'master' branch is equal to linux-2.6 official tree from &lt;br /&gt;
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git (do sync if necessary):&lt;br /&gt;
&lt;br /&gt;
  git remote add git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6&lt;br /&gt;
  git checkout master&lt;br /&gt;
  git pull linux-2.6 master&lt;br /&gt;
  git push --tags origin master:refs/heads/master&lt;br /&gt;
&lt;br /&gt;
===Syncing===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Pushing to 'alsa-kmirror.git' should be only done if:&lt;br /&gt;
&lt;br /&gt;
: a) you fixing a sync problem&lt;br /&gt;
: b) you are modifying a file which is out of sync (scripts directory or so)&lt;br /&gt;
&lt;br /&gt;
In all other cases, only alsa-kernel.git repository should be used.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Common problems====&lt;br /&gt;
&lt;br /&gt;
; PRE-RECEIVE repositories does not match, please, fix it&lt;br /&gt;
: 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.&lt;br /&gt;
&lt;br /&gt;
; PRE-RECEIVE Patch failed - is it already merged?&lt;br /&gt;
: 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).&lt;br /&gt;
&lt;br /&gt;
===Clone repositories===&lt;br /&gt;
&lt;br /&gt;
 git clone git@git.alsa-project.org:alsa-driver.git alsa-driver&lt;br /&gt;
 git clone git@git.alsa-project.org:alsa-kernel.git alsa-kernel&lt;br /&gt;
 git clone git@git.alsa-project.org:alsa-kmirror.git alsa-kmirror&lt;br /&gt;
&lt;br /&gt;
To show all branches (includes remote ones):&lt;br /&gt;
&lt;br /&gt;
 git branch -a&lt;br /&gt;
&lt;br /&gt;
To make a remote branch local:&lt;br /&gt;
&lt;br /&gt;
 git checkout -b for-linus origin/for-linus&lt;br /&gt;
 git checkout -b linux-2.6 origin/linux-2.6&lt;br /&gt;
&lt;br /&gt;
===Update and rebase using Linus's 2.6 kernel tree===&lt;br /&gt;
&lt;br /&gt;
Add remote URL:&lt;br /&gt;
&lt;br /&gt;
 git remote add linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git&lt;br /&gt;
&lt;br /&gt;
Checkout linux-2.6 branch:&lt;br /&gt;
&lt;br /&gt;
 git checkout linux-2.6&lt;br /&gt;
&lt;br /&gt;
Pull Linus's 2.6 changes:&lt;br /&gt;
&lt;br /&gt;
 git pull linux-2.6 master&lt;br /&gt;
&lt;br /&gt;
Rebase our main ALSA development master branch with linux-2.6:&lt;br /&gt;
&lt;br /&gt;
 git rebase linux-2.6 master&lt;br /&gt;
&lt;br /&gt;
===Push branch changes to ALSA GIT repository===&lt;br /&gt;
&lt;br /&gt;
 git push --tags origin master:refs/heads/master&lt;br /&gt;
 git push --tags origin linux-2.6:refs/heads/linux-2.6&lt;br /&gt;
 git push --tags origin for-linus:refs/heads/for-linus&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt; perex at perex . cz &amp;gt; if you can do this for branch 'master'.&lt;br /&gt;
&lt;br /&gt;
===Branches===&lt;br /&gt;
&lt;br /&gt;
; master&lt;br /&gt;
: this branch is for main development, managed by Jaroslav Kysela, it is rebased before ALSA releases&lt;br /&gt;
: the contents is synced to alsa-kmirror.git&lt;br /&gt;
&lt;br /&gt;
; linux-next&lt;br /&gt;
: this branch is for linux next testing tree (originaly maintaned by Andrew Morton), rebased &lt;br /&gt;
&lt;br /&gt;
; for-linus&lt;br /&gt;
: this branch is for mainstream tree (for Linus Torvalds), just temporary branch&lt;br /&gt;
&lt;br /&gt;
; linux-2.6&lt;br /&gt;
: this is official linux 2.6 mainstream tree&lt;br /&gt;
&lt;br /&gt;
; stable-2.6.&amp;lt;number&amp;gt;&lt;br /&gt;
: patches for stable 2.6 kernels&lt;br /&gt;
&lt;br /&gt;
===Tags===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Maintenance===&lt;br /&gt;
&lt;br /&gt;
GIT server is maintaned by [[User:Perex]].&lt;br /&gt;
&lt;br /&gt;
==Occasional Developers==&lt;br /&gt;
This section is for developers without write access to ALSA git. I.e. who will clone repos and send in patches&lt;br /&gt;
&lt;br /&gt;
===clone the repository===&lt;br /&gt;
 git clone git://git.alsa-project.org/alsa-driver.git alsa-driver &lt;br /&gt;
 git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror&lt;br /&gt;
&lt;br /&gt;
if you live behind a firewall that blocks the git protocol, you can do this instead:&lt;br /&gt;
&lt;br /&gt;
 git clone http://git.alsa-project.org/http/alsa-driver.git alsa-driver &lt;br /&gt;
 git clone http://git.alsa-project.org/http/alsa-kmirror.git alsa-kmirror&lt;br /&gt;
&lt;br /&gt;
if you like do only changes in code in alsa-kmirror, please, use alsa-kernel repository&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.alsa-project.org/alsa-kernel.git alsa-kernel&lt;br /&gt;
&lt;br /&gt;
but we accept patches in both forms&lt;br /&gt;
&lt;br /&gt;
===configure git===&lt;br /&gt;
Set your email address correctly otherwise commits get spurious email address for Author and Commiter&lt;br /&gt;
 git-config --add user.email me@domain.com&lt;br /&gt;
&lt;br /&gt;
Make sure it knows how to send email (for patches)&lt;br /&gt;
 git-config --add sendemail.smtpserver smtp.domain.com&lt;br /&gt;
&lt;br /&gt;
===save current===&lt;br /&gt;
in case you want to roll back&lt;br /&gt;
 git-branch save&lt;br /&gt;
&lt;br /&gt;
===do your work===&lt;br /&gt;
edit, compile, test, sweat&lt;br /&gt;
&lt;br /&gt;
If it didn't work out and you want to get back to the old tree&lt;br /&gt;
 git-reset --hard save&lt;br /&gt;
&lt;br /&gt;
===generate patches===&lt;br /&gt;
Want to get patch against latest, so rebase &lt;br /&gt;
 git-rebase origin/master&lt;br /&gt;
 git-diff remotes/origin/master&lt;br /&gt;
&lt;br /&gt;
Then do this to generate the patchset&lt;br /&gt;
 git-format-patch -s -n -p --subject-prefix=&amp;quot;PATCH - my module&amp;quot; remotes/origin/master&lt;br /&gt;
&lt;br /&gt;
===check the patches===&lt;br /&gt;
 /lib/modules/`uname -r`/build/scripts/checkpatch.pl --no-tree *.patch&lt;br /&gt;
&lt;br /&gt;
===sending the patches===&lt;br /&gt;
&lt;br /&gt;
 git-send-email --from=me --to=patch@alsa-project.org --cc=alsa-devel@alsa-project.org  000*.patch&lt;br /&gt;
&lt;br /&gt;
===get up to date===&lt;br /&gt;
For both alsa-kmirror and alsa-driver&lt;br /&gt;
 git-pull&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Benstanley</name></author>
	</entry>
</feed>