This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
developing_in_branches [2013/01/04 16:54] aseques updated instructions for new contributors |
developing_in_branches [2013/03/21 10:02] (current) nuxwin typo |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | === Workflow === | + | === Introduction === |
- | i-mscp development is happening on github, the use of git allows the developers to use their own branches for new features, making easier to keep in sync with current development. | + | This document intends to give few information about how to contribute to the i-MSCP project. |
- | This is a small guide to help you getting started with git development in i-mscp | + | The i-MSCP development team is using git as version control management system. All i-MSCP git repositories are hosted on Github, allowing any user to fork them and submit patches. |
- | * Create an account in http://github.com | + | === How to start === |
- | * Fork the project i-mscp | + | If you want contribute to the i-MSCP project, you must first fork the development branch located at [[https://github.com/i-MSCP/imscp]]. In order, you must do the following: |
- | The project url is [[https://github.com/i-MSCP/imscp|this one]], by forking, you only create clone of the project on wich you have commit rights. | + | |
- | * Clone that code to your system | + | * Create an account on [[https://github.com/i-MSCP/imscp|Github]] |
+ | * Create a fork of the i-MSCP development branch located at [[https://github.com/i-MSCP/imscp]] | ||
+ | * Clone your fork on your local system | ||
- | git clone git://github.com/your_username/imscp.git | + | The latest task can be done like this on your local system: |
- | * Create a branch for your great feature | + | git clone git://github.com/<your_username>/imscp.git |
- | git branch great_feature | + | Once you did that, it's also recommended to create a specific feature branch. For instance, if you want create a new feature for i-MSCP called **new-feature**, just create the new-feature branch as follow: |
- | * Add the modified files that you want to be commited | + | git branch new-feature |
+ | |||
+ | and then, you can start to add/modify files. See http://gitref.org/ to learn more about how to work with git. | ||
- | git add changed_file1.txt changed_file2.txt | + | When your work is ready, you can do a pull request to ask the i-MSCP development team to merge it in the development branch. This can be done from the Github interface. See [[https://help.github.com/articles/using-pull-requests|Howto do a pull request]] |
- | * Commit your changes (locally) | + | === Keep your fork synced with the upstream branch === |
- | git commit -m "Commit message" | + | Sometimes is takes a while to merge your changes with upstream, a good way to sync your branch with the upstream is to add a second remote url (the upstream repository) and periodically fetch the changes from there: |
- | + | ||
- | * Push the changes to your fork (using the created branch name) | + | |
- | + | ||
- | git push origin great_feature | + | |
- | + | ||
- | * From github interface, ask for a pull request, so it can be integrated on master. | + | |
- | + | ||
- | === Keep in sync with upstream code === | + | |
- | Sometimes is takes a while to merge your changes with upstream, a good way to sync your branch with the upstream is to add a second remote url (the upstream repositorie) and periodically fetch the changes from there: | + | |
* Add the upstream (official) code into your server (needed to rebase) | * Add the upstream (official) code into your server (needed to rebase) | ||
Line 38: | Line 32: | ||
git remote add upstream https://github.com/i-MSCP/imscp.git | git remote add upstream https://github.com/i-MSCP/imscp.git | ||
- | * Fetch any new changes from the original repo | + | * Fetch any new changes from the original repository |
git fetch upstream | git fetch upstream |