<?php 
	set_include_path($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common" . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] . "/projects" . PATH_SEPARATOR . get_include_path());
	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); 
	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");  
	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");  
	$App = new App(); 
	$Nav = new Nav(); 
	$Menu = new Menu();  
	include($App->getProjectCommon());    
	# All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Igor Vinnykov
	# Date:			2007-11-23
	#
	# Description: Autogenerated for eclipse.org site pages from Eclipse IDE help
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Subversive - Documentation";
	$pageKeywords	= "Subversive, Subversion, SVN, Team Provider, documentation, user guid";
	$pageAuthor		= "Igor Vinnykov";
		
	include("_projectCommon.php");    # All on the same line to unclutter the user's desktop'
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">

<h2>Subversion introduction</h2>
<p>
	Subversion&reg; is an open-source version control system. Subversion&reg; allows developers to share their projects on 
	repositories, where they are stored afterwards. A repository is very similar to a file server. The only difference 
	is that it not only stores a copy of the file system, but also its previous states and changing history. Subversion&reg; 
	can be accessed over a network, so it provides the possibility for people to work on shared files and watch for 
	changes made by other developers.</p>
	<p>Subversion&reg; home: <a target="_blank" href="http://subversion.tigris.org/">http://subversion.tigris.org/</a></p>
	<img src="../../images/inside.png"/>
	<br/>
	<a href="svn_diffs.php">Main feature differences between SVN and CVS</a>
	<br/>
	<a href="svn_folders.php">Trunk, Branches and Tags</a>
	<br/>
	<a href="svn_more.php">More about SVN</a>
	<br/>
	<br/>
	</div>	

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>