<?php 
	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";
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn" style="width:95%">

<h2>SVN Sharing Wizard</h2>
	<p>
	<i>'SVN Sharing Wizard'</i> provides a probability to configure sharing settings. Appears when <i>'Team>Share Project...'</i>, <i>'Team>Share Projects...'</i> menu items are clicked or while auto sharing import.</p>
	<p>The first page of this wizard allows you to choose the type of repository you would like to share you project with. (SVN in our instance). If the user activated sharing with 'Share Projects...' menu item this page will be the second one and the first one will be the page that allows to view projects group to share.</p>
	<img border = "0"  src="../images/share_select.png" alt="Select projects to share..."/>
	<p>The second page of the wizard allows to choose a repository location to share to or to create a new one.</p>
	<img border = "0"  src="../images/share_repos.png" alt="Choose repository..."/>
	<p>The next page of <i>'Sharing Wizard'</i> offers the user to choose repository name and project repository layout with preview.</p>
	<img border = "0"  src="../images/share_pr_name.png" alt="Choose repository name and layout..."/>
	<p>And the last page of this wizard will provide the user the editable space to enter his comments there or to choose some from templates.</p>
	<img border = "0"  src="../images/share_comment.png" alt="Comments..."/>
	<br/>
	<br/>
	<table cellpadding="5" cellspacing="0" border="1" width="100%">
		<tr>
			<td class="header" align ="center" valign="center">Option</td>
			<td class="header" align ="center" valign="center">Description</td>
			<td class="header" align ="center" valign="center">Default</td>
		</tr>
		<tr>
			<td align ="center" valign="center">Launch the commit dialog for selected resources</td>
			<td align ="center" valign="center">Specifies if the Subversion&reg; should commit the shared resources to the repository location at once while the user can continue his work.</td>
			<td align ="center" valign="center">Enabled</td>
		</tr>
	</table>
	<p>If the project the user wants to share has the SVN&reg; meta information the following window appears to help the user to share the project using existent information.</p>
	<img border = "0"  src="../images/share_exists.png" alt="Your project has SVN meta info..."/>
	<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/SVNaction/share.php">Sharing</a>
	<br/>
	<a href="../teamSupport/SVNaction/commit.php">Committing</a>
	<br/>
	<a href="../preferences/pref_comments.php">Comment templates</a>
	<br/>
	<br/>
	</div>	

EOHTML;


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