Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
git:sip-router-repository [2009/12/09 16:00] andrei more info on checking out branches and keeping them up-to-date |
git:sip-router-repository [2012/03/18 08:29] 109.230.216.60 voJxkfRbcK |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Hacking SIP-ROUTER with Git ====== | + | Argh, brainfart, I smhoeow completely missed |
- | + | ||
- | + | ||
- | ====== SIP-ROUTER Git Repository ====== | + | |
- | The Git repository for **sip-router** is available through HTTP, SSH, | + | |
- | the proprietary Git protocol and CVS. The HTTP and Git access methods | + | |
- | provide only read-only access to the repository, that means you will | + | |
- | be able to check out your own copy of the repository, but you will not | + | |
- | be able to push your changes back. | + | |
- | + | ||
- | To clone the repository using Git protocol do (recommended for | + | |
- | read-only access): | + | |
- | < | + | |
- | git clone git:// | + | |
- | </ | + | |
- | + | ||
- | To clone the repository using HTTP do: | + | |
- | < | + | |
- | git clone http:// | + | |
- | </ | + | |
- | + | ||
- | If you have write access to the repository and access to the git host | + | |
- | then you can checkout the repository using ssh: | + | |
- | < | + | |
- | git clone ssh:// | + | |
- | </ | + | |
- | where username is your username on host git.sip-router.org. Please see | + | |
- | also [[git: | + | |
- | changes. | + | |
- | + | ||
- | After " | + | |
- | Right now there are 3 important branches in the repository: | + | |
- | - **master** - latest code, all the new development goes here. | + | |
- | - **sr_3.0** - branch | + | |
- | - **kamailio_3.0** - branch | + | |
- | + | ||
- | If you are interested in a different branch then **master**, you have to use git checkout to change the branch, e.g.: | + | |
- | < | + | |
- | cd sip-router | + | |
- | git checkout --track -b sr_3.0 origin/ | + | |
- | </ | + | |
- | (replace **sr_3.0** with the desired branch). | + | |
- | The above command will create | + | |
- | | + | |
- | Note that as an alternative, | + | |
- | < | + | |
- | git clone --branch | + | |
- | cd sip-router | + | |
- | </ | + | |
- | + | ||
- | You need to do all of the above only once. After you already have a " | + | |
- | < | + | |
- | git fetch origin | + | |
- | git pull --rebase | + | |
- | </ | + | |
- | (replace **sr_3.0** with the branch you are on). | + | |
- | + | ||
- | + | ||
- | You can also browse the repository through the gitweb WWW interface at | + | |
- | http:// | + | |
- | + | ||
- | ====== Repository Layout ====== | + | |
- | + | ||
- | The repository | + | |
- | branches: | + | |
- | * < | + | |
- | * tmp/* | + | |
- | * master | + | |
- | + | ||
- | In general you **should not** commit to master. You should use your | + | |
- | own branch for work-in-progress and only when you think it's in a good | + | |
- | enough form (it compiles and looks stable), you should merge it to | + | |
- | master. | + | |
- | + | ||
- | ====== Commit Messages ====== | + | |
- | + | ||
- | Please create the commit messages following the git convention: | + | |
- | * start with one short line, preferably less then 50 chars summarizing the changes | + | |
- | * follow by exactly one empty line | + | |
- | * then a more detailed description (if necessary), but make sure you don't have lines longer then 72 characters | + | |
- | + | ||
- | Make sure you read [[devel: | + | |
- | + | ||
- | + | ||
- | Example vim/gvim config additions for git commit messages: | + | |
- | < | + | |
- | " git commits edit | + | |
- | au BufNewFile,BufRead COMMIT_EDITMSG setf git | + | |
- | au BufNewFile, | + | |
- | </ | + | |
- | + | ||
- | ====== Commit/push HOWTO ====== | + | |
- | + | ||
- | Please see [[git: | + | |
- | + | ||
- | ====== Merge HOWTO ====== | + | |
- | + | ||
- | Please see [[git: | + | |
- | + | ||
- | ====== CVS Compatibility ====== | + | |
- | + | ||
- | The repository is also available through cvs for those who do not want | + | |
- | or cannot use git. A recent version | + | |
- | the repository. You need to have the following two environment | + | |
- | variable set if you want to access the repository anonymously through | + | |
- | the pserver method: | + | |
- | + | ||
- | < | + | |
- | export CVSROOT=: | + | |
- | export CVS_SERVER=git-cvsserver | + | |
- | </ | + | |
- | + | ||
- | To checkout the source tree you need to specify the name of the | + | |
- | **head** (a.k.a branch) instead of the cvs module!. You can see what | + | |
- | branches are available in the repository in gitweb at | + | |
- | [[http:// | + | |
- | + | ||
- | The most important head names are: | + | |
- | * **master** - This is the main development/ | + | |
- | * **sr_3.0** - This is the (soon to be) stable sip-router 3.0 branch. | + | |
- | * **kamailio_3.0** - This is the kamailio 3.0 stable | + | |
- | + | ||
- | So if you want to checkout the latest development version then do: | + | |
- | < | + | |
- | cvs co master | + | |
- | </ | + | |
- | + | ||
- | CVS write access is only available through ssh: | + | |
- | < | + | |
- | export CVSROOT=: | + | |
- | export CVS_SERVER=git-cvsserver | + | |
- | + | ||
- | cvs co master | + | |
- | </ | + | |
- | + | ||
- | The cvs compatibility layer does not support tagging and branching, so | + | |
- | you would need to use git for that. | + |