FusionForge

Difference between revisions of "Source Control Management/6.1"

From FusionForge Wiki
Jump to: navigation, search
(Created page with "Category:User_documentation_6.1 This page in other versions: master ---- FusionForge provides a feature to integrate version control systems ...")
 
m (Centralized VCS)
 
(14 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
FusionForge provides a feature to integrate version control systems such as Subversion, Git, Bazaar, even CVS, and others. This integration relies on the plugin system that FusionForge proposes by default.
 
FusionForge provides a feature to integrate version control systems such as Subversion, Git, Bazaar, even CVS, and others. This integration relies on the plugin system that FusionForge proposes by default.
  
== Supported Version Control System ==
+
== Main Features ==
=== Distributed VCS ===
 
* [[SCM_Git_Plugin|Git]]
 
* [[SCM_Bzr_Plugin|Bazaar]]
 
* [[SCM_Hg_Plugin|Mercurial]]
 
=== Centralized VCS ===
 
* [[SCM_Cvs_Plugin|CVS]]
 
* [[SCM_Svn_Plugin|Subversion]]
 
 
 
== To be supported Version Control System ==
 
=== Distributed VCS ===
 
* Darcs
 
 
 
== Main features ==
 
 
* main repository per project
 
* main repository per project
 
* second repositories per project for Git, Mercurial
 
* second repositories per project for Git, Mercurial
* personal repository per project for Git, Mercurial
+
* personal repository per project for Git
* Simultaneous access protocols; i.e: ssh & smart http for Git
+
* Simultaneous access protocols; e.g: ssh & smart http for Git, dav & ssh for SVN, ...
 
* Role Based Access Control integration
 
* Role Based Access Control integration
 
* Web browsing by integration of standard open source tools (Git => gitweb, etc.)
 
* Web browsing by integration of standard open source tools (Git => gitweb, etc.)
 
* Reporting & statistics
 
* Reporting & statistics
 
* Nightly snapshot archive
 
* Nightly snapshot archive
* Multiple SCM type (git + svn + mercurial + etc.) simultaneously
+
* Multiple SCM type (Git + Subversion + Mercurial + CVS.) simultaneously
 
* Project Homepage widgets
 
* Project Homepage widgets
 
* User homepage widgets
 
* User homepage widgets
 +
 +
== Supported Version Control System ==
 +
=== Distributed VCS ===
 +
* [[SCM_Git_Plugin/6.1|Git]]
 +
* [[SCM_Hg_Plugin/6.1|Mercurial]]
 +
 +
=== Centralized VCS ===
 +
* [[SCM_Cvs_Plugin/6.1|CVS]]
 +
* [[SCM_Svn_Plugin/6.1|Subversion]]
  
 
See each plugin for detailled features.
 
See each plugin for detailled features.
  
== plugin extensions ==
+
== Plugin Extensions ==
 
* [[SCM_Hook_Plugin|scmhook]] provides hooks management for Git, Subversion & Mercurial
 
* [[SCM_Hook_Plugin|scmhook]] provides hooks management for Git, Subversion & Mercurial
  
==Available widgets==
+
==Available Widgets==
 
Each SCM plugin provides his own set of widgets. Still SCM core feature provides generic widgets.
 
Each SCM plugin provides his own set of widgets. Still SCM core feature provides generic widgets.
===user oriented widgets===
+
===User oriented widgets===
 
* [[Widget_User_My_Latest_Commits/6.1|My Latest Commits]]
 
* [[Widget_User_My_Latest_Commits/6.1|My Latest Commits]]
===project oriented widgets===
+
===Project oriented widgets===
 
* [[Widget_Project_5_Latest_Commits/6.1|5 Latest Commits]]
 
* [[Widget_Project_5_Latest_Commits/6.1|5 Latest Commits]]
* [[Widget_Project_Repository_History/6.1|Repository History]]
+
* [[Widget_Project_SCM_Stats/6.1|Repository History]]
 +
 
 +
== Activation ==
 +
To enable this system at forge level, the [[Configuration/6.1|configuration]] flag ''use_scm'' must be set to yes. Per project, the system can be enable/disable through the [[Project_admin_page/6.1|Project admin tab]].<br/>
 +
By setting the [[Configuration/6.1|configuration]] flag ''allow_multiple_scm'' flag to on (default is off), a project can use any SCM engine simultaneously, e.g: using SVN, Git, Hg or CVS in parallel.
 +
 
 +
== Permissions ==
 +
[[File:Ff-scm-permission.png|right|thumb|100px|FusionForge SCM Permissions]]
 +
Relying on RBAC, SCM permissions are:
 +
* ''No Access'': user has no access to Source Code Management tool and any information.
 +
* ''Read only'': user can browse, retrive information from Source Code Management Tool. User can create personal repository if SCM tool supports such feature.
 +
* ''Commit access'': user has full access to data store into Source Code Management.
 +
* ''Project administration'': the permission is set at project level. It provides full commit access and administrative permission to create/delete repositories and other configuration such as hook activation.
 +
 
 +
Permission apply to any repository created within the project.
  
== Homepage presentation ==
+
== Main Page ==
 
[[File:Ff-scm-git-homepage-sample.png|right|thumb|600px|Anonymous view of SCM project homepage]]
 
[[File:Ff-scm-git-homepage-sample.png|right|thumb|600px|Anonymous view of SCM project homepage]]
 
The SCM homepage is divided into 2 main areas:
 
The SCM homepage is divided into 2 main areas:
Line 50: Line 60:
 
* at top of the page, if your profile has administrative rights, a submenu gives you access to "Reporting" & "Administration", respectively reporting activity (commits over time, last 30 days, last 3 months, last year), administration actions such as hooks activation, create/delete second repositories.
 
* at top of the page, if your profile has administrative rights, a submenu gives you access to "Reporting" & "Administration", respectively reporting activity (commits over time, last 30 days, last 3 months, last year), administration actions such as hooks activation, create/delete second repositories.
  
== Reporting page presentation ==
+
== Browse Page ==
TODO
+
Based on tooling integration.
 +
* Scmgit: Gitweb
 +
* Scmsvn: viewvc
 +
* Scmhg: hgweb
 +
* Scmcvs: viewvc
 +
 
 +
== Reporting ==
 +
3 reports available:
 +
* Commits over time
 +
a overall total of commits per month since the start of the project
 +
* Commits last 30 days
 +
per user commits during the last 30 days.
 +
* Commits last 365 days
 +
per user commits during the last 365 days.
 +
 
 +
== Import/Export ==
  
== Administration page presentation ==
+
== Administration ==
TODO
+
Access to this page requires ''Project administration" permissions.

Latest revision as of 16:06, 15 December 2018

This page in other versions: master


FusionForge provides a feature to integrate version control systems such as Subversion, Git, Bazaar, even CVS, and others. This integration relies on the plugin system that FusionForge proposes by default.

Main Features

  • main repository per project
  • second repositories per project for Git, Mercurial
  • personal repository per project for Git
  • Simultaneous access protocols; e.g: ssh & smart http for Git, dav & ssh for SVN, ...
  • Role Based Access Control integration
  • Web browsing by integration of standard open source tools (Git => gitweb, etc.)
  • Reporting & statistics
  • Nightly snapshot archive
  • Multiple SCM type (Git + Subversion + Mercurial + CVS.) simultaneously
  • Project Homepage widgets
  • User homepage widgets

Supported Version Control System

Distributed VCS

Centralized VCS

See each plugin for detailled features.

Plugin Extensions

  • scmhook provides hooks management for Git, Subversion & Mercurial

Available Widgets

Each SCM plugin provides his own set of widgets. Still SCM core feature provides generic widgets.

User oriented widgets

Project oriented widgets

Activation

To enable this system at forge level, the configuration flag use_scm must be set to yes. Per project, the system can be enable/disable through the Project admin tab.
By setting the configuration flag allow_multiple_scm flag to on (default is off), a project can use any SCM engine simultaneously, e.g: using SVN, Git, Hg or CVS in parallel.

Permissions

FusionForge SCM Permissions

Relying on RBAC, SCM permissions are:

  • No Access: user has no access to Source Code Management tool and any information.
  • Read only: user can browse, retrive information from Source Code Management Tool. User can create personal repository if SCM tool supports such feature.
  • Commit access: user has full access to data store into Source Code Management.
  • Project administration: the permission is set at project level. It provides full commit access and administrative permission to create/delete repositories and other configuration such as hook activation.

Permission apply to any repository created within the project.

Main Page

Anonymous view of SCM project homepage

The SCM homepage is divided into 2 main areas:

  • the left side of the page is dedicated to different information to get retrieve as user (member of the project) or as anonymous (basically anyone if the project provides anonymous access to SCM) the source code.
    Online browser link is available at bottom left.
    Direct access to documentation of the (D)VCS tool is at top left.
  • the right side of the page presents some basic information about repository history.
  • at top of the page, if your profile has administrative rights, a submenu gives you access to "Reporting" & "Administration", respectively reporting activity (commits over time, last 30 days, last 3 months, last year), administration actions such as hooks activation, create/delete second repositories.

Browse Page

Based on tooling integration.

  • Scmgit: Gitweb
  • Scmsvn: viewvc
  • Scmhg: hgweb
  • Scmcvs: viewvc

Reporting

3 reports available:

  • Commits over time

a overall total of commits per month since the start of the project

  • Commits last 30 days

per user commits during the last 30 days.

  • Commits last 365 days

per user commits during the last 365 days.

Import/Export

Administration

Access to this page requires Project administration" permissions.