Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
git:sip-router-repository [2012/03/18 08:29] 109.230.216.60 voJxkfRbcK |
git:sip-router-repository [2012/12/11 16:53] (current) oej old revision restored |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Argh, brainfart, I smhoeow completely missed | + | ====== Hacking SIP-ROUTER with Git ====== |
+ | |||
+ | |||
+ | ====== 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:// | ||
+ | If you prefer you could use cvs instead of git (see below), but it will be significantly slower. | ||
+ | |||
+ | ====== 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. |