User Tools

Site Tools


developing_in_branches

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
developing_in_branches [2012/03/19 08:36]
aseques
developing_in_branches [2013/03/21 10:01]
nuxwin typo
Line 1: Line 1:
-=== Workflow ​===+=== Introduction ​===
  
-i-mscp development is happening on github, the use of git allow 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 the original ​github ​reposotory +  * Create an account on [[https://github.com/​i-MSCP/​imscp|Github]] 
-You can follow ​the instructions ​[[http://trac.i-mscp.net/wiki/​releases_git|here]]+  * Create a fork of the i-MSCP development branch located at [[https://github.com/i-MSCP/imscp]] 
 +  * Clone your fork on your local system
  
-  * Change the cloned repositort to use your fork+The latest task can be done like this on your local system:
  
-  git remote set-url origin https://your_name@github.com/your_name/imscp.git+  git clone git://​github.com/​<​your_username>​/​imscp.git ​
  
-  * Create ​a branch for your great feature+Once you did that, it's also recommended to create ​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:
  
-  git branch ​great_feature+  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.
  
 +When your work is ready, you can do a pull request to ask the i-MSCP development team to merge your works in the developement branch. This can be done from the Github interface. See  [[https://​help.github.com/​articles/​using-pull-requests|Howto do a pull request]] ​
  
-  * Add the modified files that you want to be commited+=== Keep your fork synced with the upstream branch ===
  
-  git add changed_file1.txt changed_file2.txt ​+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:
  
-  * Commit your changes (locally) +  * Add the upstream ​(official) code into your server (needed ​to rebase)
- +
-  git commit -m "​Commit message"​ +
- +
-  * 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 repositorieand periodically fetch the changes from there: +
- +
-  * Adding the upstream repostory+
  
   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
  
-  * Merge the upstrem ​code with yours, no more steps if there aren't code conflicts.+  * Merge the upstream ​code with yours, no more steps if there aren't code conflicts.
  
   git merge upstream/​master   git merge upstream/​master
/var/www/virtual/i-mscp.net/wiki/htdocs/data/pages/developing_in_branches.txt · Last modified: 2013/03/21 10:02 by nuxwin