User Tools

Site Tools


svn

Differences

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

Link to this comparison view

svn [2010/11/20 22:06]
kassah Fixed Parts List to actually render properly
svn [2011/07/04 05:41]
Line 1: Line 1:
-{{wiki:​dokuwiki-128.png?​20}} **This is a working draft. It is here for guidelines. Upon posting final guidelines, please remove this caption.**{{wiki:​dokuwiki-128.png?​20}} 
----- 
  
-====== SVN Guide Lines (Working Draft) ====== 
- 
-====== 0. Definitions ===== 
- 
-**feature**:​ A feature is a new introduced distinguishing characteristic of a software item. It will be called feature as long as it is not part of the code base. 
- 
-**trunk**: trunk is the main development branch for the project. It underlies several rules, stated in [[#​the_main_development_branch_trunk|section 1]]. 
- 
-**branch**: A branch is a development part that is used for the creation of modified code (e.g. features). Rules for branches are [[#​development_branches|section 2]]. 
- 
-**tag**: A tag is a final branch where a release version is stored. Everything related to tags is stored in [[#​tags|section 3]]. 
- 
-====== 1. The main development branch (trunk) ====== 
- 
-===== 1.1 Commit ===== 
- 
-**a.** The CHANGELOG file should be updated on every commit. Changelog entries should look like this: 
- 
-<​code>​ 
-YYYY-MM-DD FIRSTNAME SURNAME 
-* [PART] Fixed #NUMBER: TEXT 
-</​code>​ 
-Where PART is one of the following: 
-  * CONFIGS 
-  * DATABASE 
-  * DISTS 
-  * DOCS 
-  * ENGINE 
-  * GUI 
-  * SETUP 
- 
-Multiple entries should be ordered alphabetically. A line should not contain more than ~120 chars. 
- 
-**b.** The date of commit must be the date in UTC. 
- 
-**c.** Every commit should belong to a single change: Correction of a bug, addition of a new feature (//branch reintegration//​) or any other task. This facilitates the work of the quality assurance tasks. Change reverts can be performed more easy if necessary. ​ 
- 
-Commits can be done with the following command: 
- 
-<​code>​ 
-$ svn WORKING_COPY 
-$ svn up 
-$ svn ci -m " * [PART] Fixed #NUMBER: TEXT" 
-$ svn up 
-</​code>​ 
- 
-but better is to use an IDE such as PhpStorm, NetBean, eclipse... 
- 
-Note: If someone else is the author of a patch the name of the author should be added in round brackets. 
- 
-===== 1.2 Merge ===== 
- 
-**a.** Developers should never perform partial merge of a branch into the trunk, only complete reintegrations. 
- 
-Reintegration can be done with the following command: 
- 
-<​code>​ 
-$ svn WORKING_COPY 
-$ svn up 
-$ svn merge --reintegrate http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​trunk 
-$ svn up 
-</​code>​ 
- 
-====== 2. Development branches ====== 
- 
-===== 2.1 General ===== 
- 
-**a.** The branches should be used to develop of new features or to maintain a version already released. 
- 
-**b.** The feature branch developer should keep their branch up to date. He/she has to perform regular synchronization with the trunk and need to resolve conflicts properly. 
- 
-===== 2.2 Creation ===== 
- 
-**a.** A release branch must be named after a release and will be created with the following command, where x.y is the number of the release.: 
- 
-<​code>​ 
-$ svn copy http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​trunk http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​branches/​mscp-x.y 
-</​code>​ 
- 
-**b.** Each feature should have its own branch and must be initialized from the trunk. Use the following command for this: 
- 
-<​code>​ 
-$ svn copy http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​trunk http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​branches/​FEATURE-NAME-dev 
-</​code>​ 
- 
-===== 2.2 Commit ===== 
- 
-The same rules as for [[#​commit|1.1]] are valid. 
- 
-===== 2.3 Synchronizations ===== 
- 
-As specified in paragraph **[[#​general1|2.1.c]]** developers must perform regular synchronization of their branch with the trunk. The Synchronization should be made with the following commands: 
- 
-<​code>​ 
-$ svn WORKING_COPY 
-$ svn merge http://​isp-control.net/​ispcp_svn/​trunk 
-$ svn ci -m "​Synchonization with main development branch"​ 
-$ svn up 
-</​code>​ 
- 
-===== 2.4 Merge from branch to trunk ===== 
- 
-Partial merges from one branch into the trunk are not permitted. 
- 
-===== 2.5 Re-integration ===== 
- 
-**a.** After the development of a feature is completed, the branch developers need to ask the team for approval to re-integrate the branch into the trunk with the following commands: 
- 
-<​code>​ 
-$ svn WORKING_COPY 
-$ svn merge http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​trunk 
-$ svn ci -m "​Synchonization with main development branch"​ 
-$ svn up 
-$ svn merge --reintegrate http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​trunk 
-</​code>​ 
- 
-**b.** After successful re-integration,​ the branch developer has to delete the branch. This can done by using the following command: 
- 
-<​code>​ 
-$ svn rm http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​branches/​YOUR_BRANCH 
-</​code>​ 
- 
-====== 3. Tags ====== 
- 
-===== 3.1 General ===== 
- 
-**a.** Tags are the storage of releases. Once set, tags are immutable. 
- 
-**b.** Tags should be only created by the **_person preparing the release_** 
- 
-**c.** Every tag has to follow he name convention **i-mscp-x.y.z**,​ where x.y.z is the number of the release. 
- 
-===== 3.2 Tagging ===== 
- 
-The tagging has to be done on the day of a new version with the following command: 
- 
-<​code>​ 
-$ svn move http://​i-mscp.svn.sourceforge.net/​svnroosvnroot/​i-mscp/​branches/​mscp-x.y.z http://​i-mscp.svn.sourceforge.net/​svnroot/​i-mscp/​tags/​mscp-x.y.z 
-</​code>​ 
/var/www/virtual/i-mscp.net/wiki/htdocs/data/pages/svn.txt · Last modified: 2011/07/04 05:41 (external edit)