<?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>SVN Repository Exploring Perspective</h2>
	<p>
		
		<i>'SVN Repository Exploring Perspective'</i> is the default one for most Subversive views. Contains SVN Repositories View as default. It's recommended to allocate all the views with contents connected to the repositories and synchronizing. Use this perspective to operate and navigate through repository locations.</p>
	<p>This is how <i>'SVN Repository Exploring Perspective'</i> looks like:</p>
	<img border = "0" src="../images/rep_expl_persp.png" alt="SVN Repository Exploring Perspective"/>
	<br/>
	<img border="0" src="../images/rel_tops.png" alt="Related topics"/>
	<br/>
	<a href="../teamSupport/new_location_wiz.php">SVN Repository Location Wizard</a>
	<br/>
	<a href="../teamSupport/create_repository.php">SVN Repository Dialog</a>
	<br/>	
	<a href="../teamSupport/repos_view.php">SVN Repository View</a>
	<br/>
	<a href="../teamSupport/repos_browser_view.php">SVN Repository Browser View</a>
	<br/>
	<a href="../teamSupport/history_view.php">SVN History View</a>
	<br/>
	<a href="../teamSupport/props_view.php">SVN Properties View</a>
	<br/>
	<a href="../teamSupport/locks_view.php">SVN Locks View</a>
	<br/>
	<a href="../teamSupport/revision_graph.php">SVN Revision Graph</a>	
	<br/>
	<br/>
	</div>	

EOHTML;


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