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
developing_in_branches [2012/03/19 08:36]
aseques
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 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 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]] ​
  
-  * 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/attic/developing_in_branches.1332146162.txt.gz · Last modified: 2012/03/19 08:36 by aseques